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

Ark*_*itz 5 python django rabbitmq celery django-celery

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

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

谢谢你的回答.

Tom*_*gli 6

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

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

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

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

您希望在应用程序的每个运行实例上都拥有相同的代码,无论它们是芹菜工人/网络服务器还是其他任何东西.