django-celery在多服务器生产环境中

时间:2012-09-03 10:23:04

标签: python django rabbitmq celery django-celery

我尝试使用django部署django项目,但我没有解决这些问题:

  • 我应该为每个Web服务器运行一个celeryd吗?
  • 我应该只运行一台RabbitMQ服务器,在那台运行celeryd的另一台机器(不是)上,可以访问我的所有网络服务器吗?还是必须在每个Web服务器上运行RabbitMQ?
  • 如果所有网络服务器中的代码相同,我如何使用定期任务?

感谢您的回答。

1 个答案:

答案 0 :(得分:6)

这实际上取决于项目的大小,理想情况下,你有RabbitMq,芹菜工人和网络工作者在不同的机器上运行。

您只需要一个RabbitMQ,最终需要多个队列工作人员(当然,更大的队列需要更多的工作人员)。

每个网络工作者不需要1个芹菜工作者,网络工作者将向经纪人发布任务,然后工作人员将从那里获取他们,事实上,网络工作者并不关心连接到经纪人的工作量,因为它只与经纪人沟通。

当然,如果您正在启动一个项目,那么将所有内容保存在同一硬件上并保持低预算并等待流量和资金流动是有意义的。)

您希望在应用的每个正在运行的实例上都使用相同的代码,无论他们是芹菜工人/网络服务器还是其他什么。