瀏覽代碼

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

Ask Solem 11 年之前
父節點
當前提交
5367d3310d
共有 1 個文件被更改,包括 3 次插入0 次删除
  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