2017-02-13 6 views
0

定期的に私のセロリの労働者は何かに立ち往生。 inspectはすべてのワーカーが忙しいので、何が原因であるのか分かりません。セロリエ:すべての労働者は、どのように診断する方法をスタック

celery inspect active 

    Error: No nodes replied within time constraint 

ノードが何か(これは問題を引き起こしているように思われる)していても、アクティブなタスクのようなセロリ状態を取得することは可能ですか? inspectを出力するために、どういうわけか派遣社員を派遣することはできますか?

この問題を診断するには、他にどのような戦略がありますか?

セロリ4.x. Redisバックエンド。

+0

を明らかにすることができる、セロリ、どのように、あなたの労働者を実行するための少なくとも構成設定を提供してください。 CPUの負荷は高いですか?タスクやアイドルを実行している間、彼らは立ち往生していますか?ちょうど良いアドバイス - あなたはバックエンドとしてRedisを使うことができますが、ブローカーとして使ってはいけません(これはあなたが出会った問題の原因かもしれません)。あなたはこの同じマシンまたはリモートのブローカーを持っていますか?ブローカのログをチェックして、接続損失を見つけます。 – baldr

答えて

0

これはCelery + gevent(evil monkey patch)+ Sentry's Ravenロガーのデッドロックの問題です。

https://github.com/getsentry/raven-python/issues/305

あなたは異なるキュー(-q、-n)のパラメータでセロリの労働者を起動して、労働者がハングアップしたときに見ることができるの問題を診断します。たとえ一部のワーカーグループがハングしていても、他のグループは依然としてinspectクエリに応答する可能性があります。

セロリファイルのログは問題が不完全でエラー

2017-02-27 08:36:34,371 CRITI [celery.worker][DummyThread-6] Unrecoverable error: AttributeError("'NoneType' object has no attribute 'readline'",) 
Traceback (most recent call last): 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/celery/worker/worker.py", line 203, in start 
    self.blueprint.start(self) 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/celery/bootsteps.py", line 119, in start 
    step.start(parent) 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/celery/bootsteps.py", line 370, in start 
    return self.obj.start() 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/celery/worker/consumer/consumer.py", line 318, in start 
    blueprint.start(self) 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/celery/bootsteps.py", line 119, in start 
    step.start(parent) 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/celery/worker/consumer/consumer.py", line 594, in start 
    c.loop(*c.loop_args()) 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/celery/worker/loops.py", line 118, in synloop 
    connection.drain_events(timeout=2.0) 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/kombu/connection.py", line 301, in drain_events 
    return self.transport.drain_events(self.connection, **kwargs) 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/kombu/transport/virtual/base.py", line 961, in drain_events 
    get(self._deliver, timeout=timeout) 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/kombu/transport/redis.py", line 359, in get 
    ret = self.handle_event(fileno, event) 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/kombu/transport/redis.py", line 341, in handle_event 
    return self.on_readable(fileno), self 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/kombu/transport/redis.py", line 337, in on_readable 
    chan.handlers[type]() 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/kombu/transport/redis.py", line 714, in _brpop_read 
    **options) 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/redis/client.py", line 585, in parse_response 
    response = connection.read_response() 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/redis/connection.py", line 577, in read_response 
    response = self._parser.read_response() 
    File "/srv/pyramid/xxx/venv/lib/python3.5/site-packages/redis/connection.py", line 238, in read_response 
    response = self._buffer.readline() 
AttributeError: 'NoneType' object has no attribute 'readline' 
関連する問題