私はHeroku上でセロリの作業員を実行していますが、タスクの1つがタイムアウトに達しました。手動で再試行したところ、すべて正常に機能していたため、おそらく接続の問題でした。私はブローカーとしてRabbitMQを使用しており、Celeryはタスク(CELERY_ACKS_LATE = True)の遅れを確認するように設定されています。私はそのタスクがRabbitMQキューに返され、別のワーカーによって再度処理されることを期待していましたが、それは起こりませんでした。作業者がタイムアウトしたときにタスクがRabbitMQキューに戻るために他の設定を行う必要がありますか?ここでCeleryはタイムアウト後にRabbitMQキューにタスクを戻さなかった
はログです:あなたがセロリの時間制限を打っているよう
Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.4/site-packages/billiard/pool.py", line 639, in on_hard_timeout
raise TimeLimitExceeded(job._timeout)
billiard.exceptions.TimeLimitExceeded: TimeLimitExceeded(60,)
[2015-09-02 06:22:14,504: ERROR/MainProcess] Hard time limit (60s) exceeded for simulator.tasks.run_simulations[4e269d24-87a5-4038-b5b5-bc4252c17cbb]
[2015-09-02 06:22:18,877: INFO/MainProcess] missed heartbeat from [email protected]
[2015-09-02 06:22:18,922: ERROR/MainProcess] Process 'Worker-1' pid:9 exited with 'signal 9 (SIGKILL)'