Browse Source

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

Ask Solem 10 years ago
parent
commit
4ae2f1d631
1 changed files with 4 additions and 1 deletions
  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()
             if timeout and now() - time_start >= timeout:
                 raise socket.timeout()
-            wait(timeout=timeout)
+            try:
+                wait(timeout=1)
+            except socket.timeout:
+                pass
             if on_interval:
                 on_interval()
             if results:  # got event on the wanted channel.