|
@@ -24,7 +24,7 @@ extract_msg_options = lambda d: dict(zip(MSG_OPTIONS, get_msg_options(d)))
|
|
|
default_queue = conf.get_queues()[conf.DEFAULT_QUEUE]
|
|
|
|
|
|
_queues_declared = False
|
|
|
-_exchanges_declared = {}
|
|
|
+_exchanges_declared = set()
|
|
|
|
|
|
|
|
|
class TaskPublisher(Publisher):
|
|
@@ -44,9 +44,12 @@ class TaskPublisher(Publisher):
|
|
|
consumers = get_consumer_set(self.connection)
|
|
|
consumers.close()
|
|
|
_queues_declared = True
|
|
|
+ self.declare()
|
|
|
+
|
|
|
+ def declare(self):
|
|
|
if self.exchange not in _exchanges_declared:
|
|
|
- self.declare()
|
|
|
- _exchanges_declared[self.exchange] = True
|
|
|
+ super(TaskPublisher, self).declare()
|
|
|
+ _exchanges_declared.add(self.exchange)
|
|
|
|
|
|
def delay_task(self, task_name, task_args=None, task_kwargs=None,
|
|
|
countdown=None, eta=None, task_id=None, taskset_id=None, **kwargs):
|