Browse Source

Can now change CELERY_AMQP_EXCHANGE, CELERY_AMQP_ROUTING_KEY, CELERY_AMQP_CONSUMER_QUEUE using Django settings.

Ask Solem 16 years ago
parent
commit
c34afd0072
2 changed files with 23 additions and 5 deletions
  1. 17 0
      celery/conf.py
  2. 6 5
      celery/messaging.py

+ 17 - 0
celery/conf.py

@@ -1,6 +1,17 @@
 from django.conf import settings
 import logging
 
+# The default AMQP exchange key.
+DEFAULT_AMQP_EXCHANGE = "celery"
+
+# The default AMQP routing key
+DEFAULT_AMQP_ROUTING_KEY = "celery"
+
+# The default AMQP consumer queue.
+DEFAULT_AMQP_CONSUMER_QUEUE = "celery"
+
+# If True, task meta information (like is_done) is saved to the database
+# instead of using the Django cache framework.
 DEFAULT_TASK_META_USE_DB = False
 
 # The number of processes to work simultaneously at processing the queue.
@@ -54,3 +65,9 @@ DAEMON_PID_FILE = getattr(settings, "CELERYD_PID_FILE",
 DAEMON_CONCURRENCY = getattr(settings, "CELERYD_CONCURRENCY",
                                 DEFAULT_DAEMON_CONCURRENCY)
 
+AMQP_EXCHANGE = getattr(settings, "CELERY_AMQP_EXCHANGE",
+                            DEFAULT_AMQP_EXCHANGE)
+AMQP_ROUTING_KEY = getattr(settings, "CELERY_AMQP_ROUTING_KEY",
+                            DEFAULT_AMQP_ROUTING_KEY)
+AMQP_CONSUMER_QUEUE = getattr(settings, "CELERY_AMQP_CONSUMER_QUEUE",
+                            DEFAULT_AMQP_CONSUMER_KEY)

+ 6 - 5
celery/messaging.py

@@ -1,4 +1,5 @@
 from carrot.messaging import Publisher, Consumer
+from celery import conf
 import uuid
 
 __all__ = ["NoProcessConsumer", "TaskPublisher", "TaskConsumer"]
@@ -12,8 +13,8 @@ class NoProcessConsumer(Consumer):
 
 
 class TaskPublisher(Publisher):
-    exchange = "celery"
-    routing_key = "celery"
+    exchange = conf.AMQP_EXCHANGE
+    routing_key = conf.AMQP_ROUTING_KEY
 
     def delay_task(self, task_name, **task_kwargs):
         return self._delay_task(task_name=task_name, extra_data=task_kwargs)
@@ -34,6 +35,6 @@ class TaskPublisher(Publisher):
 
 
 class TaskConsumer(NoProcessConsumer):
-    queue = "celery"
-    exchange = "celery"
-    routing_key = "celery"
+    queue = conf.AMQP_CONSUMER_QUEUE
+    exchange = conf.AMQP_EXCHANGE
+    routing_key = conf.AMQP_ROUTING_KEY