소스 검색

AMQP result backend: Call on_interval every second (always) to propagate parent errors

Ask Solem 10 년 전
부모
커밋
4ae2f1d631
1개의 변경된 파일4개의 추가작업 그리고 1개의 파일을 삭제
  1. 4 1
      celery/backends/amqp.py

+ 4 - 1
celery/backends/amqp.py

@@ -213,7 +213,10 @@ class AMQPBackend(BaseBackend):
             # Total time spent may exceed a single call to wait()
             # Total time spent may exceed a single call to wait()
             if timeout and now() - time_start >= timeout:
             if timeout and now() - time_start >= timeout:
                 raise socket.timeout()
                 raise socket.timeout()
-            wait(timeout=timeout)
+            try:
+                wait(timeout=1)
+            except socket.timeout:
+                pass
             if on_interval:
             if on_interval:
                 on_interval()
                 on_interval()
             if results:  # got event on the wanted channel.
             if results:  # got event on the wanted channel.