messaging.py 790 B

123456789101112131415161718192021222324252627282930
  1. from carrot.messaging import Publisher, Consumer
  2. import uuid
  3. __all__ = ["NoProcessConsumer", "TaskPublisher", "TaskConsumer"]
  4. class NoProcessConsumer(Consumer):
  5. def receive(self, message_data, message):
  6. raise NotImplementedError(
  7. "Don't use process_next() or wait() with the TaskConsumer!")
  8. class TaskPublisher(Publisher):
  9. exchange = "celery"
  10. routing_key = "celery"
  11. def delay_task(self, task_name, **kwargs):
  12. task_id = str(uuid.uuid4())
  13. message_data = dict(kwargs)
  14. message_data["celeryTASK"] = task_name
  15. message_data["celeryID"] = task_id
  16. self.send(message_data)
  17. return task_id
  18. class TaskConsumer(NoProcessConsumer):
  19. queue = "celery"
  20. exchange = "celery"
  21. routing_key = "celery"