私はDjango 1.6
、RabbitMQ 3.5.6
、celery 3.1.19
を使用しています。RabbitMQからのエタを伴うセロリのタスク
30秒ごとに実行され、与えられたeta
パラメータで200のタスクを作成する定期的なタスクがあります。私がセロリの作業員を実行した後、RabbitMQでゆっくりキューが作成され、約1200個のタスクが解雇されるのを待っています。次に、セロリのワーカーを再起動し、待機中の1200個のスケジュールされたタスクはすべてRabbitMQから削除されます。私は実行 my_task.apply_async((arg1, arg2), eta=my_object.time_in_future)
このような労働者:私は、タスクを作成する方法
python manage.py celery worker -Q my_tasks_1 -A my_app -l
CELERY_ACKS_LATE
は、Djangoの設定でTrue
に設定されています。私は何らかの理由を見つけることができませんでした。
別の設定/フラグ/パラメータでワーカーを実行する必要がありますか?何か案が?
1)ウサギサーバー全体ではなくワーカーのみを再起動してもよろしいですか? 2)タスクに 'ttl'時間を設定して、この時間が過ぎると単純に削除されるのでしょうか? – matino
1)私は、労働者だけが再開されると確信しています。 2)どのような構成でもタスクに設定されるttlはありません。これはデフォルトの設定です。しかし、従業員を開いたままにしておくと、タスクはキューに残ります。 –
デバッグログを共有できますか? –