0
我有一個使用RabbitMQ將消息放入隊列的節點應用程序。然後我有一些使用芹菜的python工人。當新消息發佈到該隊列時,我希望芹菜自動執行一些任務。 我怎樣才能做到這一點?任何幫助表示讚賞。如何在新消息到達隊列時執行芹菜任務?
我有一個使用RabbitMQ將消息放入隊列的節點應用程序。然後我有一些使用芹菜的python工人。當新消息發佈到該隊列時,我希望芹菜自動執行一些任務。 我怎樣才能做到這一點?任何幫助表示讚賞。如何在新消息到達隊列時執行芹菜任務?
試試這個: 在節點的消息應該有這樣的格式
var message = {
"id": "4cc7438e-afd4-4f8f-a2f3-f46567e7ca77",
"task": "task_name",
"args": ["this is my arg"],
"kwargs": {},
"retries": 0
}
而且芹菜中你的任務應該是這樣定義:
@app.task(serializer='json', name='task_name')
def task1(arg1):
print arg1
而且不要忘了配置路線你的芹菜配置文件,例如:
app.conf.update(
CELERY_TASK_RESULT_EXPIRES=3600,
CELERY_ROUTES = {'tasks.task1': {'queue': 'queue_name'}},
CELERY_ACCEPT_CONTENT = ['application/json']
)
我也在github上發佈了這個問題:https://github.com/celery/celery/issues/2279 – 2014-09-25 13:26:00