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

时间:2012-04-21 16:36:47

标签: python celery

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

2 个答案:

答案 0 :(得分:43)

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

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

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

答案 1 :(得分:0)

我部署它的方式是这样的:

  1. 在heroku实例上克隆你的django项目(这将运行前端)
  2. 将RabitMQ添加为添加并配置
  3. 将你的django项目克隆到另一个heroku实例(称之为worker),你将在那里运行芹菜任务