各チェーンタスクとグループ/コードコールバックタスクのキューを別々に指定できます。
スニペットのように:
@shared_task(name="analyze_atom", queue="atom")
def analyze_atom(image_urls, targetdir=target_path, studentuid=None):
return {}
@shared_task(name="summary_up", queue="summary")
def summary_up(rets, studentuid, images):
return {}
chord(analyze_atom.s([image]) for image in images)(summary_up.s(studentuid, images))
そして、タスクが実行されている、あなたはブローカーとしてのRabbitMQを使用していると仮定し、ブローカーの内容を検査でき、あなたはここでのRabbitMQ管理プラグイン、またはpyrabbitインタフェーススニペットにより、キューの深さを調べることができます:
from pyrabbit.api import Client
cl = Client('localhost:15672', 'guest', 'guest')
count = cl.get_queue_depth('/', 'summary') # this guy check queue depth
cl.get_messages('/','paperanalyzer') # this guy get messages within queue
結果バックエンドが必要です。すべてのタスク結果をタスクIDで取得できます。
上記のスキルでは、セロリのタスクがどのように進行するかを調べるのは簡単だと思います。
幸運:-)