10

我希望我写的电子邮件服务与我的烧瓶应用程序完全分离。我正在使用芹菜和rabbitmq。所以我想知道有没有一种方法可以配置芹菜,以便在一个项目中我有 Flask 应用程序将消息发送到队列(生产者)。在另一个项目中,我运行了一个 celery 实例来监听消息并执行任务(消费者)。我仍然对通信将如何工作感到困惑?我是否将 API(发送电子邮件)放在我的烧瓶应用程序或 celery 项目中?最终,我希望在不同的 EC2 实例中拥有 Flask 应用程序和 Celery 实例——用 rabbitmq 作为消息代理。

谢谢你的帮助!

4

1 回答 1

6

您可以使用 Celery 的send_task函数通过 RabbitMQ 使用任务名称将任务发送给工作人员。您仍然需要导入拥有 celery 应用程序的模块:

如果任务未在当前进程中注册,您可以使用 send_task() 按名称调用任务。

例子:

from yourmodule.yourapp import celery
celery.send_task("yourtasksmodule.yourtask", args=["Hello World"])
于 2013-10-29T07:36:13.157 回答