此查询与我的Google Summer of Code project相关。基本上,我有一个主节点,它将构建任务委托给许多指定的图像构建节点。现在,我使用手册“scp”,使用“ssh”策略进行远程执行。所以,我没有任何调度或任务分配 - 自动化。
我现在正在寻找一种可能比我目前的策略更好的解决方案。我正在看'芹菜'并且只是稍微玩了一下。我能够远程运行一个简单的工作。但是,根据我的理解,到目前为止,celery需要工作节点的源文件。我也无法探索芹菜是否会进行自动任务分配/调度?我使用RabbitMQ作为经纪人。
我是新手,所以更有经验的人肯定能够建议芹菜是一个不错的选择,还是有更适合的东西?
答案 0 :(得分:0)
Celery确实需要访问工作源,因为它只是一个围绕你的函数的装饰器,导致它们以不同的方式运行。但是,您可以更改工作节点的内容。您只需在主节点上编写一个python脚本,它完全按照您的操作执行(scp,ssh)。这成了“工人”。然后,您还可以在主节点上创建一个控制脚本(提供文件位置,URL等等)并使用Celery运行该脚本。然后,Celery服务器将通过crontab(例如定期删除(here))处理任务调度,分发,或者您可以等待正在运行的任务(here)的结果,然后让它安排新的任务完。
答案 1 :(得分:0)
我有点困惑。而且我已经弄清楚了。 Celery将自动选择使用相同经纪人的其中一名工人。所以,是的,它会进行调度和分发。