2017-02-13 1 views
0

주기적으로 모든 셀러리 작업자가 무엇인가 붙어 있습니다. 나는 모든 직원이 바쁘기 때문에 inspect이 작동하지 않기 때문에이 문제의 원인을 파악할 수 없습니다. 셀러리 : 모든 작업자가 찔러 진단하는 방법

celery inspect active 

    Error: No nodes replied within time constraint 

은 (즉 원인이 문제가 될 것으로 보인다) 노드가 뭔가를하고있는 경우에도, 활성 작업처럼, 셀러리 상태를 얻을 수 있습니까? inspect을 출력하기 위해 임시 직원을 어떻게 만듭니 까?

이 문제를 진단하기 위해 어떤 다른 전략이 필요합니까?

셀러리 4.x. Redis 백엔드.

+0

를 공개 할 수있다, 셀러리, 어떻게 당신이 당신의 노동자를 실행하기위한 최소 구성 설정을 제공하십시오. CPU로드가 높습니까? 작업을하거나 유휴 상태에서 실행하는 동안 막혀 있습니까? 좋은 조언 - Redis를 백엔드로 사용할 수 있지만 브로커로 사용하지 마십시오 (이로 인해 만난 적이있는 문제가 발생할 수 있음). 이 기계 또는 브로커를 가지고 있습니까 (네트워크 확인)? 브로커 로그를 확인하여 연결이 끊어 졌는지 확인하십시오. – baldr

답변

0

이것은 Celery + gevent (사악한 원숭이 패치) + Sentry 's Raven logger의 교착 상태 문제로 판명되었습니다.

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' 
관련 문제