セロリの仕組みを理解しようとしています
私のDjangoアプリケーションtasks.py
ファイル1つのタスクを作成しました:
@celery.shared_task(default_retry_delay=2 * 60, max_retries=2)
def my_task(param1, param2):
# There are some operations
私はこのコードを使用してこのタスクを呼び出します:
my_task.delay(param1, param2)
この中my_task
このタスクを再度開始する必要がある条件が1つありますが、1分の遅延の後
タスクには何らかの ETAとカウントダウン があることがわかりましたが、それらの例はapply_async
delay
に何らかのカウントダウンを使用することは可能ですか?
delay(*args, **kwargs)
タスクメッセージを送信するためのショートカットですが、は実行オプションをサポートしていません。
したがって、遅延は明らかに便利ですが、追加の実行オプションを設定したい場合は、apply_asyncを使用する必要があります。
ドキュメントに記載されているように、delay
を追加のオプションセットと共に使用することはできないため、呼び出しをapply_async
に変換する必要があります
実行オプションを追加する場合は、ドキュメントで署名を使用することをお勧めします。例えば:
my_task.s(arg1, arg2).apply_async(countdown=60)