1

Django は、1 回のスクリプト実行でチェーンを介して複数のCeleryタスクを生成します (fe if / がブラウザーで開かれている場合、1000 個のタスクが遅延メソッドによって呼び出されます)。

以前のスクリプト実行でキューに入れられたタスクがまだ実行されている場合、新しいタスクの生成を制限するものが必要です。

4

2 に答える 2

0

次の設定により、同時に実行される 1 つのタイプのタスクの数を制限できます。

rate_limit = “1000/m” 

=> このタイプのタスクは 1 分間に 1000 個しか実行できません。( http://docs.celeryproject.org/en/latest/userguide/tasks.html#list-of-optionsを参照)

于 2013-10-12T23:50:39.173 に答える
0

これには、セロリがネイティブに提供していない分散ロックが必要です。

redis.Lockこの種のロックについては、ほとんどの場合に役立つことがわかりました。セマフォが必要な場合は、redis のアトミックな incr/decr 関数をある種のウォッチドッグ メカニズムと共に使用して、プロセスがまだ実行されていることを確認できます。

于 2013-10-01T20:54:10.587 に答える