4

我有我想做的一切,django-celery在我的本地开发机器上工作。我运行 Djangodjcelerycellery代理 (Amazon SQS)。它发送任务并且正常工作。

我可以像我在本地完成的一样设置这一切(即全部在一台机器上),但是当我想将任务分发到另一台机器/共享任务等时会发生什么?这是当前机器(使用 Djangodjcelerycelery)的副本以及所有与同一个 SQS 的连接吗?这是如何运作的?如果他们都连接到同一个经纪人,他们只是“知道”吗?或者它不是这样工作的?

是否可以像我在开发中那样在一台机器上开始一切(我将在生产中守护 celery)?

4

1 回答 1

4

Amazon SQS 是一项简单的队列服务,作业进入等待运行,然后在完成后从队列中删除。Celery 只是从这个队列中读取。

芹菜可以水平和垂直缩放。您需要芹菜来更快地处理更多工作吗?为您的机器提供更多资源,增加工作人员数量,这就是垂直扩展,或者启动更多较小的机器,即水平扩展。无论哪种方式,您的芹菜工人都在 SQS 上使用相同的队列。这确实取决于您的 celery 工作正在做什么,以及您的其他基础设施将如何受到影响。如果他们正在写入数据库,那么您拥有的工作人员越多,数据库上的负载就越高,因此您也需要考虑扩展它。

从一台机器上的“全部”方法开始是可以的。随着对应用程序需求的增长,您可以开始考虑将 celery 工作人员转移到更多机器上,或者在一台服务器上为您提供更多资源。

这有帮助吗?:)

于 2013-03-27T21:24:28.723 回答