如何在新消息到达队列时执行芹菜任务



我有一个节点应用程序,它使用RabbitMQ将消息放入队列。然后我让一些工人在python中使用芹菜。我希望在将新消息发布到该队列时,芹菜能够自动执行一些任务。我怎样才能做到这一点?感谢您的帮助。

试试这个:在节点中,您的消息应该具有以下格式的

var message = {
             "id": "4cc7438e-afd4-4f8f-a2f3-f46567e7ca77",
             "task": "task_name",
             "args": ["this is my arg"],
             "kwargs": {},
             "retries": 0
            }

在Celery中,你的任务应该这样定义:

@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']
)

相关内容

  • 没有找到相关文章

最新更新