処理のためにタスクをエンキューする小さなスクリプトがあります。このスクリプトは、エンキューする必要のあるアイテムを取得するためのデータベースクエリをたくさん作成します。私が直面している問題は、スクリプトによってエンキューされるとすぐに、セルリーワーカーがタスクを開始することです。これは正しく、セロリが動作する方法ですが、これはしばしばスクリプトとセロリの労働者の間のデッドロックにつながります。Celeryタスクの実行を延期する方法を教えてください。
スクリプトからすべてのタスクをエンキューできますが、スクリプトが完了するまで、または一定の時間が経過するまで実行を延期する方法はありますか?
セロリまたはdjango-celeryのドキュメントでこれを見つけることができませんでした。これは可能ですか?
現在、クイックフィックスとして、処理されるすべてのアイテムをリストに追加することを考えました。スクリプトがすべてのクエリの実行を完了したら、リストを繰り返してタスクをエンキューすることができます。おそらくこれで問題は解決しますが、何千ものアイテムをエンキューすると、これは悪い考えかもしれません。