2016-06-21 7 views
0

私はDjango WebサイトにAPIを統合しました。 APIを介した完全な注文には、5つの要求と応答が送受信される必要があります。最後の2つのリクエストは、順次送信されることが非常に重要ではありません。私はこれらの2つの要求をセロリの課題に割り当てました。Celeryタスクがブローカーによって割り当てられていません

シナリオ:10件の注文を処理するリクエストを送信するので、各注文には5件のリクエストがあり、うち2件がセロリタスクに割り当てられています。したがって、セロリには、ブローカーによって割り当てられる合計10のタスクがあります。これらのタスクのそれぞれには2つの要求があります。

結果:API呼び出しの実行中にセラーリに10個のタスクが割り当てられていないため、10個の各セットについて、完了したものは5または4または6などとなります。毎回、処理されない2つまたは3つのタスクがあります。私は何がタスクをブローカーによって割り当てられないようにさせているのか分かりません。

私はタスクを呼び出すためにdelay()コマンドを使用しています。私task.pyファイルには、このタスクへの呼び出しがこの

process_jobs.delay(self, job, **response_arg) 

process_jobsのように見えるDBに保存された応答で順次次々行われる2つのHTTP要求が含まれています。この

from celery import shared_task 
from celery.utils.log import get_task_logger 

logger = get_task_logger(__name__) 


@shared_task 
def process_jobs(client_obj, job, **kwargs): 

    # do task related work 

のように多少見えます。

これで問題が解決しない場合

process_jobs.delay(job, **response_arg) 

process_jobs.delay(self, job, **response_arg) 

を交換

答えて

0

をアドバイスしてください、そして、解決策を見つけるために、より詳細な情報を共有してください。

+0

確かに、確認してお知らせします。 –

+0

@ user778907 –

関連する問題