从django消费消息

时间:2017-10-30 11:44:28

标签: python django celery

是否可以使用django中的芹菜消耗来自rabbitmq的消息?

正在从其他非django应用程序发送消息

import os
from celery import Celery
from django.conf import settings

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')

app = Celery("test")
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
app.conf.task_routes = { 
  'task.send_emails':{
    'queue': 'sendmail',
    'exchange': 'sendmail',
    'routing_key': 'sendmail'
 }
}
app.config_from_object('django.conf:settings')

1 个答案:

答案 0 :(得分:2)

Celery创建的消息包含要执行的方法的名称及其参数列表 - 所以不,Celery本身不能使用那些未以该格式为现有的已注册Celery任务创建的消息。

但是,您可以使用Kombu来实现 - 它是处理原始消息创建和消费的芹菜的一部分,并且它非常易于使用。