我需要将我的app堆栈分开,将web和worker作为单独的微服务,即它们都运行在不同的基础架构中,并且都有不同的存储库。
拦截器得到的是如何将消息添加到队列中,即task.add.delay(a,b)这意味着任务添加应该在web中,我可以轻松地替换使用pika将消息推送到rabbitmqp的方式python包但然后我将松开其他功能,如链即链=添加(a,b)| send_result();链()
有没有办法在没有代码
的情况下定义任务的情况下用芹菜将消息推送到rabbitmq答案 0 :(得分:3)
您可以使用send_task
:
http://docs.celeryproject.org/en/latest/reference/celery.html#celery.Celery.send_task
这样您就可以执行app.send_task('tasks.add', args=[1,2])
如果您需要链接任务,则应使用签名(http://docs.celeryproject.org/en/latest/reference/celery.html#celery.signature):
from celery import signature, chain
sig1 = signature('tasks.add', args=[1,2])
sig2 = signature('tasks.add', args=[4,9])
result = chain(sig1, sig2)()