是否可以使用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')
答案 0 :(得分:2)
Celery创建的消息包含要执行的方法的名称及其参数列表 - 所以不,Celery本身不能使用那些未以该格式为现有的已注册Celery任务创建的消息。
但是,您可以使用Kombu来实现 - 它是处理原始消息创建和消费的芹菜的一部分,并且它非常易于使用。