CeleryをDjango用に設定する際に問題があります。セロリで複数のプロセスを開始する
これは私がジャンゴ・セロリ起動する方法です:タスクの
python manage.py celery worker --autoscale=10,2
例:
@task
def test(i):
print "ITERATION {} START".format(i)
time.sleep(10)
print "ITERATION {} END".format(i)
return True
をそして私は、このタスクを呼び出す:
for i in range(10):
test.delay(i)
私が何を期待私がキューに10個のタスクを送信すると、10個のプロセスがオープンしなければならないということです。実際に何が起こる
は、プロセスの乱数は、彼らがを終了した後、これらの4つのタスクは、別の3スタートを、他の3開始とを終了し、通常は4と後、開始されていることです。これは完了までに時間がかかるタスクでも発生します。 2分。
誰かがこの現象を説明できますか?自動スケール上限で許可されている場合は、すぐにすべてのタスクを開始できますか?
また、autoscaleの下限は2ですが、サーバーの起動時に3つのプロセスが実行されます。何故ですか?
プラットフォーム:OpenWRT、デュアルコアプロセッサ、2GB RAM。
セロリ環境の並行性の設定をチェックして、それがタスクを制限しているかどうかを確認したい場合があります。 – postoronnim