【问题标题】:Celery appropriate for this task?芹菜适合这个任务吗?
【发布时间】:2012-06-04 02:39:58
【问题描述】:

此查询与我的Google Summer of Code project 有关。基本上,我有一个主节点,它将构建任务委托给许多指定的图像构建节点。现在,我使用手册“scp”进行操作,然后使用“ssh”策略进行远程执行。因此,我没有任何调度或任务分配 - 自动进行。

我现在正在寻找一种可能比我目前的策略更好的解决方案。我在看“芹菜”,并玩弄了一下。我已经能够远程运行一个简单的工作。但是,据我目前了解,celery 需要 worker 节点 处的源文件。我也无法探索 celery 是否会进行自动任务分配/调度?我使用 RabbitMQ 作为代理。

我是新手,所以有经验的人肯定可以建议芹菜是一个不错的选择还是有什么更适合这个?

【问题讨论】:

    标签: python celery distributed-computing


    【解决方案1】:

    Celery 确实需要访问 worker 源代码,因为实际上它只是您的函数周围的装饰器,导致它们以不同的方式运行。但是,您可以更改工作程序节点是什么。您只需在主节点上编写一个 python 脚本,它完全可以执行您一直在做的事情(scp、ssh)。这成为“工人”。然后,您还要在主节点上创建一个控制脚本(提要文件位置、url 等)并使用 Celery 运行它。然后,Celery 服务器将通过 crontab (如定期任务 (here))处理任务调度、分发,或者您可以等待正在运行的任务(here)的结果,然后让它在完成时安排一个新任务。

    【讨论】:

      【解决方案2】:

      我有点困惑。我已经弄清楚了。 Celery 将自动选择使用同一经纪人的工人之一。所以,是的,它负责调度和分发。

      【讨论】:

      • 嗯——它是底层的消息队列进行分发,而如何它是如何做到的,这取决于您选择配置的队列类型(以及交换你附上它或他们)。如果您配置一个扇出交换,生成四个工作人员,将其中两个附加到交换上的两个队列中的每一个,然后每个作业将有两个工作人员执行它,一个来自交换上的每个队列。 AMQP 是一种非常灵活的架构,Celery 不会阻止您使用它。
      猜你喜欢
      • 2013-10-30
      • 2014-12-04
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-01
      • 2014-04-16
      相关资源
      最近更新 更多