Explorar o código

[3.1] Regression: CELERY_DEFAULT_DELIVERY_MODE was no longer respected. Issue #1953

Ask Solem %!s(int64=11) %!d(string=hai) anos
pai
achega
5367d3310d
Modificáronse 1 ficheiros con 3 adicións e 0 borrados
  1. 3 0
      celery/app/amqp.py

+ 3 - 0
celery/app/amqp.py

@@ -202,6 +202,7 @@ class TaskProducer(Producer):
         exchange = exchange or self.exchange
         self.queues = self.app.amqp.queues  # shortcut
         self.default_queue = self.app.amqp.default_queue
+        self._default_mode = self.app.conf.CELERY_DEFAULT_DELIVERY_MODE
         super(TaskProducer, self).__init__(channel, exchange, *args, **kwargs)
 
     def publish_task(self, task_name, task_args=None, task_kwargs=None,
@@ -237,6 +238,8 @@ class TaskProducer(Producer):
             routing_key = routing_key or queue.routing_key
         if declare is None and queue and not isinstance(queue, Broadcast):
             declare = [queue]
+        if delivery_mode is None:
+            delivery_mode = self._default_mode
 
         # merge default and custom policy
         retry = self.retry if retry is None else retry