【问题标题】:Celery: Connect to Remote Broker to Share TasksCelery:连接远程代理共享任务
【发布时间】:2015-10-06 07:52:46
【问题描述】:

我有许多耗时的任务需要由多台机器共享。我目前有一台使用芹菜工人来完成任务的主机。我使用 RabbitMQ 作为代理,使用 redis 作为本地在该机器上运行的后端。主机也负责部署任务和返回结果。

我想知道是否可以让从机远程连接到代理并在主机中生成后端来获取作业,以便所有机器一起工作。我想我只需要以某种方式配置 RabbitMQ 和 redis 设置,然后在从机中启动 Celery 工作者。非常感谢。

【问题讨论】:

  • 是的。你可以这样做。在其他机器上运行 celery 工作者,这些机器指向主机上的工作者使用的代理和后端。

标签: python redis rabbitmq celery


【解决方案1】:

查看 Celery 文档时,绝对没有限制您不能从工作进程访问 RabbitMQ 作为远程服务器,而不仅仅是使用 localhost。看看 CELERY_QUEUE_HA_POLICY here

【讨论】:

  • 它说“发布到队列的消息被复制到所有从站”,这不是我想要的。如果从站从队列中获取任务,则该任务应该消失。否则不会加快进程。
  • @JFreebird - 我想你误解了这个说法。所有从站都可以看到这些消息。但是,只有一个人应该运行特定的任务。我建议您进行设置并亲自查看。
猜你喜欢
  • 2010-11-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 2016-10-14
  • 2012-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多