task.py 692 B

1234567891011121314151617181920
  1. from carrot.connection import DjangoAMQPConnection
  2. from crunchy.messaging import TaskPublisher, TaskConsumer
  3. from crunchy.registry import tasks
  4. def delay_task(task_name, **kwargs):
  5. if task_name not in tasks:
  6. raise tasks.NotRegistered(
  7. "Task with name %s not registered in the task registry." % (
  8. task_name))
  9. publisher = TaskPublisher(connection=DjangoAMQPConnection)
  10. task_id = publisher.delay_task(task_name, **kwargs)
  11. publisher.close()
  12. return task_id
  13. def discard_all():
  14. consumer = TaskConsumer(connection=DjangoAMQPConnection)
  15. discarded_count = consumer.discard_all()
  16. consumer.close()
  17. return discarded_count