繁体   English   中英

如何在不同的机器上设置芹菜工人?

[英]How to set up celery workers on separate machines?

我是celery的新手。我知道如何安装和运行一台服务器,但是我需要将任务分发到多台计算机上。 我的项目使用celery将传递到Web框架的用户请求分配给不同的计算机,然后返回结果。 我阅读了文档,但没有提到如何设置多台计算机。 我想念什么?

我的理解是,您的应用程序会将请求推送到排队系统(例如rabbitMQ),然后您可以在不同的机器上启动任意数量的工作程序(可以访问与提交任务的应用程序相同的代码)。 他们将从消息队列中挑选出任务,然后开始处理它们。 完成后,他们将更新逻辑删除数据库。

这样做的结果是,您不必为启动多个工作人员而做任何特殊的事情。 只需在单独的相同(相同的源树)计算机上启动它们。

具有消息队列的服务器不必与具有工作者队列的服务器相同,也不必与提交作业的计算机相同。 您只需要将消息队列的位置放在celeryconfig.py ,所有计算机上的所有工作程序都可以从队列中提取作业以执行任务。

我的部署方式是这样的:

  1. 在heroku实例上克隆您的django项目(这将运行前端)
  2. 添加RabitMQ作为附件并对其进行配置
  3. 将django项目克隆到另一个heroku实例(称为worker)中,在该实例中将运行celery任务

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM