有关 分布式任务处理 Celery 的小问题

2017-07-19 23:13:38 +08:00
 NoBeeBee
最近一直在捯饬分布式任务处理的问题,在探索的路途中感觉发现了一个宝---celery。 感觉好牛逼的一个分布式任务处理的开源框架。但仔细找了找相关资料,除了国外官网的资料,目测国内百度上面搜了搜也都是一些入门的小栗子,完全没有体现出 celery 的正常实力水平。

难道各位大神没有用过 celery 吗?
还是我太 low 了,已经没人玩 celery 了。。。

难道各位不用 分布式任务处理吗,还请各位给小弟指点迷津
4822 次点击
所在节点    Python
29 条回复
NoBeeBee
2017-07-20 13:01:09 +08:00
还想问大家目前都用的 celery 的哪个版本。
我目前用的是 3.1.25 (因为用 4.0.0 时发现 Rabbitmq 和 celery 中的 flower 老是无法正常连接,别告诉我你们没有遇到
-_-!)
yongzhong
2017-07-20 13:06:17 +08:00
@NoBeeBee 目测是你的 flower 和 celery 启动顺序问题导致看不到 worker
Lihz
2017-07-20 13:39:16 +08:00
@Anlim
broker 从 redis 换成 Rabiitmq
异步任务中涉及网络连接的部分超时、重试机制要确定
全局超时时间可以调小点
glogo
2017-07-20 13:42:41 +08:00
国外的文档也不难看懂啊...
NoBeeBee
2017-07-20 14:22:23 +08:00
@yongzhong 我仔细回想了一下,我遇到的应该是 4.0.0 celery 无法在 rabbitmq 中创建 queue,导致 所有 worker 能找到 broker 但是订阅不到 queue。flower 中是能看到 worker 的。
NoBeeBee
2017-07-20 15:17:19 +08:00
还有想问问大家都是怎么来运行大批量 worker 的:

目前本人使用 docker compose 批量启动运行大量包含 celery 的容器 worker 来运行的,
内部运行的程序主体 是通过 docker 中 volumes 文件映射 将 同一 host 主机中的 所有 worker 类 docker 全部映射到 同一文件路径,然后各 host 再通过 git 来更新迭代代码。(不知道大家都在用什么方法,感觉自己应该不是最 low 的一个吧)
ifoolish
2017-07-20 16:07:41 +08:00
最近正在用,选用 celery 主要是因为和 django 配合有 djcelery 这个现成的第三方扩展可以在 django 运行时动态添加删除定时任务
Anlim
2017-07-22 22:29:18 +08:00
@Lihz 其实基本上 req 都设置 timeout, 目前基本上每天都上项目 Celery Flower 看看。看看日志,暂停了就简单粗暴的 restart。之前在一个新的项目中有读取不到 celery task,然后重启 redis 后竟然可以了:)。
jerrychan807
2018-11-07 10:22:19 +08:00
@ifoolish 能解决时区的问题吗?我用的是 django-celery-beat,如果是默认的 UTC 时区,就没什么问题。改成东八区就出问题了~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/376540

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX