1

サードパーティのAPIと統合するプロジェクトでCeleryを使用しています。処理のためにファイルをサービスに送信する必要があります。ファイルを送信した後、処理が完了するまで10秒ごとに処理のステータスを要求する必要があります。

私が今持っているように、メインタスクはサブタスクをスピンオフして処理のステータスをチェックします。これらのサブタスクを有限のセロリビートタスクのように機能させたいです。サブタスクと呼んでタスクライフを開始し、タスクが完了したら終了したいと思います。

これを達成するための最良の方法は何ですか?

4

1 に答える 1

4

次に、Task.retryを使用します。

from celery.result import AsyncResult

@task
def verify_task(task_id):
    result = AsyncResult(task_id)
    if result.ready():
         do_something_with(result.get())
    else:
        verify_task.retry(countdown=1)

カウントダウンは、再試行までの秒数です。

于 2012-03-10T01:50:58.060 に答える