1
Anlim 2017-07-19 23:21:12 +08:00
django + celery 使用中,但是 celery 有时候会莫名其妙的暂停。。。所以在坑中。
|
2
chengxiao 2017-07-19 23:23:08 +08:00 via iPhone
我也是,要用做个消息队列,但是国内教程很少,很笼统
|
3
NoBeeBee OP 看来还有有同一个战壕的战友, 我找到国内某位先驱写的 国外官网翻译,不管是版本较低( 3.1.7 ),而且只翻译了最基本一点儿,后面都没有翻译。
最近常时不时查看国外官网,每次都要用绊脚的英语去 yy 官网用意,快累到死。 真想接着这位大神的脚步一起把这玩意都翻译完,以造福大众。但感觉他那个站好像不更了,指路中----》 http://docs.jinkan.org/docs/celery/ 就是上面这个站,好想找他一起接着撸 代码 |
6
misaka19000 2017-07-20 03:39:38 +08:00 via Android
官方文档差不多够用了吧
|
7
cszeus 2017-07-20 07:54:23 +08:00
有个 http://python-rq.org/ 似乎更轻量一点。
|
8
JasperYanky 2017-07-20 09:42:47 +08:00
我不会用 celery 不会用 rq 所以用了 huey https://github.com/coleifer/huey
|
9
NoBeeBee OP @misaka19000 够用是够用,但对于英语战斗力较低的同学来说(譬如本人),还是有些望而却步。
|
10
NoBeeBee OP |
11
JasperYanky 2017-07-20 09:50:45 +08:00
@NoBeeBee celery 确实强大,我之前也用过, django 配合 celery 有个库,但是我一直搞不定特定任务进特定队列的功能,爬了好多文 官方文档也看了 就是解决不了。后来发现,我好像不需要这么强大的东西,直接用了最简单的异步框架,目前很完美
|
12
JasperYanky 2017-07-20 09:51:31 +08:00
@chengxiao 试试 huey 相当好用
|
13
FiveDDD 2017-07-20 09:51:43 +08:00
我是一直看文档做的,我感觉文档很详细了啊
|
15
yongzhong 2017-07-20 09:56:05 +08:00
python 项目基本 celery 标配啊,国内资料少那也是没办法的事,费尽心思写一篇 celery 的博客可能还不如一个 spring mvc 集成教程阅读来的多(非黑)
stackoverflow+官方文档基本就能解决一切了 |
16
NoBeeBee OP @JasperYanky 我前两天刚试了试 router 功能, 貌似可以跑通。要不要和你分享一下
|
17
ylcc 2017-07-20 09:57:37 +08:00
我觉得长期是应该提升英文水平,短期可以看看董伟明的博客不知道有没有帮助 https://zhuanlan.zhihu.com/p/22304455
|
18
reAsOn 2017-07-20 10:02:16 +08:00
一直在用 celery,不过用的 redis 的 backend 没有遇到过啥坑,很稳定
|
19
ultimate010 2017-07-20 10:36:12 +08:00
分布式爬虫项目,对于 redis broker,耗时任务会出现卡死,简单粗暴重启解决。
|
20
NoBeeBee OP @reAsOn 我用的 Rabbitmq ,感觉 这个 Rabiitmq 在别的地方没怎么见过,可能是我太孤陋寡闻了吧……
|
21
NoBeeBee OP 还想问大家目前都用的 celery 的哪个版本。
我目前用的是 3.1.25 (因为用 4.0.0 时发现 Rabbitmq 和 celery 中的 flower 老是无法正常连接,别告诉我你们没有遇到 -_-!) |
23
Lihz 2017-07-20 13:39:16 +08:00
|
24
glogo 2017-07-20 13:42:41 +08:00
国外的文档也不难看懂啊...
|
25
NoBeeBee OP @yongzhong 我仔细回想了一下,我遇到的应该是 4.0.0 celery 无法在 rabbitmq 中创建 queue,导致 所有 worker 能找到 broker 但是订阅不到 queue。flower 中是能看到 worker 的。
|
26
NoBeeBee OP 还有想问问大家都是怎么来运行大批量 worker 的:
目前本人使用 docker compose 批量启动运行大量包含 celery 的容器 worker 来运行的, 内部运行的程序主体 是通过 docker 中 volumes 文件映射 将 同一 host 主机中的 所有 worker 类 docker 全部映射到 同一文件路径,然后各 host 再通过 git 来更新迭代代码。(不知道大家都在用什么方法,感觉自己应该不是最 low 的一个吧) |
27
ifoolish 2017-07-20 16:07:41 +08:00
最近正在用,选用 celery 主要是因为和 django 配合有 djcelery 这个现成的第三方扩展可以在 django 运行时动态添加删除定时任务
|
28
Anlim 2017-07-22 22:29:18 +08:00
@Lihz 其实基本上 req 都设置 timeout, 目前基本上每天都上项目 Celery Flower 看看。看看日志,暂停了就简单粗暴的 restart。之前在一个新的项目中有读取不到 celery task,然后重启 redis 后竟然可以了:)。
|
29
jerrychan807 2018-11-07 10:22:19 +08:00
@ifoolish 能解决时区的问题吗?我用的是 django-celery-beat,如果是默认的 UTC 时区,就没什么问题。改成东八区就出问题了~
|