2011-07-26 14 views
1

rabbitMQバックエンドでセロリを使用していますが、サーバーの一部がエラーでハングします: "[Errno 113]ホストへのルートがありません"米国では半分、ヨーロッパでは半分)。セロリで 'send_task'によって送信されたタスクの再試行

残念ながら、残念ながら私はsend_task /文字列識別子(タスクを送信するサーバーはリモートワーカーのコードにアクセスできません)を使用して送信されたタスクを再試行する方法はわかりません。

send_task("remote1.tasks.add_data", args=[...], kwargs={}, queue="remote1") 

このようなタスクは再試行できますか?

答えて

4

sent_task sent_taskを呼び出すサーバで例外が発生した場合、メッセージは単にブローカに届きませんが、再試行するタスクはありません。処理された。 そうでなければ、彼らはいくつかの理由のためにブローカーを達することができないので、すべてのあなたの労働者がランダムにこの例外を発生させる場合は、おそらくあなたがtrueにセットすることにより解決することができるセロリconfには

CELERY_ACKS_LATE = Trueの

をvarsの「後期ACKは、タスクを意味し、メッセージは、タスクが実行された後で確認されます。これは以前の動作ではなく、デフォルトの動作です。 これは、ワーカーのタスクの実行中に問題が発生した場合、ブローカーはackを受信せず、別のワーカーがそのタスクを実行することを意味します。

関連する問題