Celery中如何配置多台机器,为每个机器启动一个worker?
@Hochikong 你好,想跟你请教个问题:如何在多个机器上搭建celery的集群环境?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
@Hochikong 你好,想跟你请教个问题:如何在多个机器上搭建celery的集群环境?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(14)
谢谢大神
我想你对celery的使用方式有一点误解.
本来celery的worker就是应该跑在不同机器上,一台机器上的worker可以跑多个task进程或者线程.
worker运行的时候会连接到broker, 在控制机上脚本直接向broker发送任务即可, 当不指定queue的时候,任务会随机分配到任意一个有default-queue的worker机器上.
所以你需要的是建立一个broker,在不同机器上运行celery worker, 在控制机上发送任务向broker即可, 把你要采集的url拆分到不同任务里面发送到broker就行了.
看我博客:http://my.oschina.net/hochikong/blog/518587
如果你等不及的话,直接参考celery官方文档(我手头上的是3.1.16的PDF版文档)的routing guide的111和112页
打错了,是routing tasks那节。总之是PDF文档的page 111和112
ps:111和112是阅读器所示的页数,文档对应的页码应为107,108
回复
麻烦贴一下celery集群的代码,谢谢!
回复
好的,等你明天贴出来,谢谢了
能否给出相关配置实例代码?谢谢
希望能给出具体的代码DEMO实例,谢谢!!!
这一周多时间一直在找相关的资料,一直没有什么进展,希望博主可以指点迷津,我们的项目有一个模块里面需要执行抓取网页内容的任务,使用Celery进行并行任务控制,由于一次抓取的网页比较多,多台机器上应该如何使用?麻烦给个参考建议,谢谢!
我周日贴出来吧,高三没什么时间在家
回复
好的,谢谢!
你可以在celery代码中为每个节点都定义一个queue,在每个节点上启动的worker利用启动命令监听你之前定义的相应的queue。其他节点要发送任务给指定的节点时,只要指明要发送的queue即可。