2011-06-27 10 views
7

私はDjangoプロジェクトのセロリーを使い始めています。現地での開発のために、私はdjceleryとdjkombu(データベース転送)を使って、これらの指示書に従ってhttp://ask.github.com/celery/tutorials/otherqueues.html#django-databaseを設定しましたが、プロダクションサーバでrabbitmqを使用する予定です。ハングアップするセラーの作業員を診断するには

私はそれが動作することを発見しましたが、1人または複数のワーカーがランダムにハングアップすることがありました。従業員はさまざまなタスクを実行するため、特定のタスクが無限ループに入っていることはありません。私がセロリを閉めようとするとき、私は通常、1人を除いてすべての労働者が出て行くのを見ます。作業者の前と後の両方で、celeryctlを使用して作業者に関する情報を取得しようとしましたが、celeryctlは常に「エラー:時間制約内でノードが応答しませんでした。 」というメッセージで失敗します。私も労働者http://docs.celeryproject.org/en/latest/userguide/workers.html#inspecting-workersを検査しようとしましたが、すべてのメソッドは何も返しません。

ワーカーのハングアップを診断する方法に関するアイデアや、参考になるものがあります。

+0

まず実行セロリを。 セロリを再起動したり停止したりすると、タスクを実行しているPoolworkerはタスクが終了するまで再開されませんが、これは通常の動作です。あなたの仕事が無作為​​にブロックされていることはもちろんのことですが、もちろんです。これは、ウサギのMQで私に起こったことはありません、それは可能です可能性がありますDBのロックや接続に関連して..あなたはMYSQLのInnoDBを使用している?私は強くdb輸送の代わりにブローカーを提案します –

+0

あなたはどのバージョンを実行していますか? – asksol

答えて

1

私は同じ問題を抱えていました。これは、イベントをサポートしていないghettoqを使用しているためです。

依頼することにより:DEBUGレベルのceleryd -l DEBUGとシェル上

remote control commands (broadcast) and events does not work with ghettoq.

関連する問題