如何在不同的机器上安装芹菜工人?

Eva*_*Gui 44 python celery

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

Nou*_*him 45

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

这样做的结果是你不需要做任何特别的事情来启动多个工人.只需在单独的相同(相同源树)机器上启动它们.

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

  • @ImTravelerClown 我认为您将分布式环境与主从环境混淆了。在基于 celery 的环境中没有主服务器,但许多节点都有工作人员做事。您可能需要更好地解释您的问题。 (2认同)
  • @lajarre 你确定吗?工作人员肯定需要知道“tasks.add”(在您链接到的示例中)指的是什么,不是吗? (2认同)