Bläddra i källkod

Catch channel errors when deleting result queue with if_empty=True

Ask Solem 14 år sedan
förälder
incheckning
1b8e2777d1
1 ändrade filer med 4 tillägg och 1 borttagningar
  1. 4 1
      celery/backends/amqp.py

+ 4 - 1
celery/backends/amqp.py

@@ -150,7 +150,10 @@ class AMQPBackend(BaseDictBackend):
             binding = self._create_binding(task_id)(channel)
             result = binding.get()
             if result:
-                binding.delete(if_unused=True, if_empty=True, nowait=True)
+                try:
+                    binding.delete(if_unused=True, if_empty=True, nowait=True)
+                except conn.channel_errors:
+                    pass
                 payload = self._cache[task_id] = result.payload
                 return payload
             elif task_id in self._cache: