Ver Fonte

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

Ask Solem há 10 anos atrás
pai
commit
f632c3b6ff
1 ficheiros alterados com 4 adições e 1 exclusões
  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.