処理のためにタスクをキューに入れる小さなスクリプトがあります。このスクリプトは、キューに入れる必要のあるアイテムを取得するために、大量のデータベース クエリを作成します。私が直面している問題は、スクリプトによってエンキューされるとすぐに、セロリ ワーカーがタスクを取得し始めることです。これは正しく、セロリが機能するはずの方法ですが、これにより、スクリプトとセロリ ワーカーの間でデッドロックが発生することがよくあります。
スクリプトからすべてのタスクをキューに入れ、スクリプトが完了するまで、または一定の遅延時間まで実行を遅らせる方法はありますか?
celery または django-celery のドキュメントでこれを見つけることができませんでした。これは可能ですか?
現在、クイックフィックスとして、処理するすべてのアイテムをリストに追加することを考えていました。スクリプトがすべてのクエリの実行を完了したら、リストを反復処理してタスクをキューに入れるだけです。これで問題が解決するかもしれませんが、何千ものアイテムをキューに入れる場合、これは悪い考えかもしれません。