为啥感觉用 Celery 的大公司比较少 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
YuuuZeee
V2EX    Python

为啥感觉用 Celery 的大公司比较少

  •  2
     
  •   YuuuZeee 2018-10-01 22:35:35 +08:00 24758 次点击
    这是一个创建于 2565 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT 不知道是不是个人见识比较少 感觉国内用 python 的远不及 java 的多。。。然后同理导致使用 Celery 的公司也很少。。。

    同事们好多都是表示没听说过这个东西=-=

    面试的时候好不容于遇到一个用这个的。。。只会用这个发邮件。。。问点消息中间件 /Celery 是如何处理一个 task 的就 GG

    个人感觉这个东西是类似调度系统来离线 /异步去执行各类任务的 而且感觉 learning curve 也不高呀。。。咋没啥人用

    用 Celery 的筒子们举起你们的小手手!

    55 条回复    2024-11-26 15:45:12 +08:00
    zhuangzhuang1988
        1
    zhuangzhuang1988  
       2018-10-01 22:43:48 +08:00
    动态语言没啥用.
    lfzyx
        2
    lfzyx  
       2018-10-01 22:44:31 +08:00
    只会用 celery 发邮件的♂
    ericls
        3
    ericls  
       2018-10-01 22:58:49 +08:00 via iPhone
    挺多的啊 这个几乎是行业标准
    Yeungsin
        4
    Yeungsin  
       2018-10-01 23:04:40 +08:00
    我们在用,不过 worker 太多,撑不住,把 celery 好几个功能都关了,差不多当成普通 MQ 了
    zwh2698
        5
    zwh2698  
       2018-10-01 23:08:13 +08:00 via Android   1
    从稳定性说 Java 确实优于 python,尤其是大量用户的时候,Java 更有优势
    Yeungsin
        6
    Yeungsin  
       2018-10-01 23:09:05 +08:00
    想起来 4.2.0 有一个内存泄露的 bug 还在等着修复
    Zzdex
        7
    Zzdex  
       2018-10-01 23:09:32 +08:00
    只用 celery 来发邮件,处理定时任务,更深的没研究过,,,
    YuuuZeee
        8
    YuuuZeee  
    OP
       2018-10-01 23:20:25 +08:00
    @Yeungsin 诶 就是想交流一下这方面大家是如何去管理多个 worker 的。。。。
    cz5424
        9
    cz5424  
       2018-10-01 23:26:16 +08:00
    @YuuuZeee flower 了解一下
    20150517
        10
    20150517  
       2018-10-01 23:37:35 +08:00
    因为正常人都用比如 aws sqs 这种云集成的服务,单独开这个不合算
    0xABCD
        11
    0xABCD  
       2018-10-02 00:00:42 +08:00 via Android
    用 py 的人这个应该要知道吧
    0ZXYDDu796nVCFxq
        12
    0ZXYDDu796nVCFxq  
       2018-10-02 00:28:22 +08:00 via Android
    我们用得多,大厂
    neoblackcap
        13
    neoblackcap  
       2018-10-02 00:36:36 +08:00   2
    其实是跟编程语言相关的,虽然 celery 说自己也是一个 actor 框架,任务队列。但是相对于 Java,你说 actor 框架,他们有 akka,任务队列也不少。还有就是队列什么他们一个都不少,有真线程,最简单的难道不是开一个线程去干,干完了就同步一下以及回调吗?
    YuuuZeee
        14
    YuuuZeee  
    OP
       2018-10-02 01:00:13 +08:00
    @gstqc 方便透露哪些大厂吗=-=感觉找不到队友呀
    Eds1995
        15
    Eds1995  
       2018-10-02 01:40:19 +08:00 via Android
    celery 坑还是蛮多的,特别定时任务,我们一般用来做定时任务,还有数据导入导出。
    Eds1995
        16
    Eds1995  
       2018-10-02 01:44:50 +08:00 via Android
    还有就是 celery 不支持 redis cluster 集群模式,导致 redis 集群只能用 Sentinel
    blless
        18
    blless  
       2018-10-02 03:03:13 +08:00 via Android
    额 真需要强事务写数据库就好了吧…我是想不出使用场景
    janxin
        19
    janxin  
       2018-10-02 07:48:08 +08:00
    用 Java 的确实比 Python 多,这没什么奇怪的呀
    noobsheldon
        20
    noobsheldon  
       2018-10-02 08:16:43 +08:00 via Android   1
    celery 的任务队列不是就把消息队列包一层,然后帮你写好了生产者和消费者吗?你调 task.delay()的时候,MainProcess 把调用函数及参数序列化一下,然后 WorkerProcess 再反序列化一下调用信息,找到对应的 task,并使用得到的参数进行调用。个人的一点看法,交流一下。
    ashin
        21
    ashin  
       2018-10-02 09:58:16 +08:00
    感觉 celery 自身一点都不稳 issue 里面好多 bug 的样子,感觉还是比较重又容易出问题,可能是我太菜,现在用的 worker 使用 gevent 的模式每次启动后差不多 3 分钟后的样子就会稳定的报一次连接 mq 的错误,然后再也不发生,对业务貌似没有实际影响,prefork 的话大概 15 分钟发生。而且 flower 现在也有 bug 的样子 页面点 worker 根本进不去,其他都正常
    GoLand
        22
    GoLand  
       2018-10-02 11:23:39 +08:00 via iPhone
    我们公司也重度使用 celery 吧,中等厂。挺好的。
    zhangsen1992
        23
    zhangsen1992  
       2018-10-02 14:06:31 +08:00
    我记得 zhihu AD 都用过这个吧
    akmonde
        24
    akmonde  
       2018-10-02 15:43:19 +08:00
    关键 v 站玩这个的也不算多...
    zhengxiaowai
        25
    zhengxiaowai  
       2018-10-02 17:25:34 +08:00   1
    celery 坑太多真的太多,异步任务可以使用消息队列替代,定时任务那就更多了。

    celery beat 添加修改任务,必须要重启,这个太坑了
    scriptB0y
        26
    scriptB0y  
       2018-10-02 17:50:10 +08:00
    我一开始也基本是个项目都需要用 Celery,后来发现 uWSGI 自带了一个简单的 Spooler 可以处理大部分异步任务和周期运行的任务( 2min 以内可以)

    https://www.kawabangga.com/posts/3101
    qq976739120
        27
    qq976739120  
       2018-10-02 20:27:35 +08:00   1
    我到现在都没学会怎么用 celery 往指定的 exchange 发消息...所以干脆自己封装了一个,还蛮好用的
    fatpa
        28
    fatpa  
       2018-10-02 23:59:29 +08:00
    搭配 redis 做消息对列,基本就可以实现一个定时 scheduler 和一堆无限拓展的 woker 了,之前做监控和消息推送用这样的方案实现
    Ehco1996
        29
    Ehco1996  
       2018-10-03 09:15:09 +08:00
    我们这也重度依赖 celery
    比较可怕的是我们居然用他做数据同步
    kingfighters
        30
    kingfighters  
       2018-10-03 09:19:09 +08:00
    @fatpa 为什么用 redis 做消息队列,不该用 rebbitmq 么?其实可以了解一下 airbnb 开源的 airflow,之前搭过一个类似的系统,不过当然没有 airflow 那么功能全,也是业务场景不需要。。
    liudi1990
        31
    liudi1990  
       2018-10-03 12:48:09 +08:00
    Robinhood 在用 并且主要的 contributor 在他家 fte 你感受一下
    YaphetYin
        32
    YaphetYin  
       2018-10-04 02:26:25 +08:00 via iPhone
    @Eds1995 4.2 我记得支持了
    YaphetYin
        33
    YaphetYin  
       2018-10-04 02:33:38 +08:00 via iPhone
    踩了不少坑,最奇葩的一个是 4.2 下 chunks.group.skew 竟然需要 eval 一下才能正确执行,感觉不到测试的气息。看有人已经提了 issue,4.3 会修复。还有他家文档极其不友好,什么 status,state,这种一些类似的属性都不给说明,用得心累
    lolizeppelin
        34
    lolizeppelin  
       2018-10-04 12:46:03 +08:00
    直接拿 openstack 相关代码用 用什么 celery

    作者家的 kombu 还是不错的 233
    eloah
        35
    eloah  
       2018-10-04 15:38:44 +08:00
    之前用过......
    生产环境上内存泄漏,调度停止什么的不要太多,提了 Issue 修复也不发版本
    反正我是觉得挺坑的
    ytmsdy
        36
    ytmsdy  
       2018-10-04 16:04:52 +08:00 via iPhone
    之前用 celery 做异步队列,结果在做异步推送的时候碰到 bug。4 万多个设备每个设备推送了 9 个一样的通知,被老板骂死。然后再也不敢用 celery 了。
    fushall
        37
    fushall  
       2018-10-04 17:38:37 +08:00
    目前的实习公司目前准备从 celery 转到 dask
    hotea
        39
    hotea  
       2018-10-04 22:26:26 +08:00
    复杂的异步任务用 celery,一般的用 rq 比较好,简单
    kingfighters
        40
    kingfighters  
       2018-10-05 08:32:41 +08:00
    @ytmsdy 后来用什么了?
    YuuuZeee
        41
    YuuuZeee  
    OP
       2018-10-05 10:46:53 +08:00
    @ytmsdy 后来换啥了
    sampeng
        42
    sampeng  
       2018-10-05 12:49:22 +08:00 via iPhone
    消息中间件一抓一大把有什么好奇怪的
    ashCloud
        43
    ashCloud  
       2018-10-05 14:34:49 +08:00
    python 还是外企用的多一点
    fatpa
        44
    fatpa  
       2018-10-06 00:03:53 +08:00
    @kingfighters 并发量不那么高的时候,就没必要折腾那么多组件了,维护成本也是不小的
    foxyier
        45
    foxyier  
       2018-10-08 10:29:55 +08:00
    路过的表示这东西坑很多,自己试玩了一个来月果断弃了
    ytmsdy
        46
    ytmsdy  
       2018-10-09 12:27:37 +08:00   1
    @kingfighters
    @YuuuZeee
    老老实实用了 rabbitmq
    gsw945
        47
    gsw945  
       2018-10-09 12:50:22 +08:00 via Android   1
    不知道大公司用什么,我用 APScheduler 加其它服务 替代 Celery 了
    jerrychan807
        48
    jerrychan807  
       2018-11-07 10:24:56 +08:00
    @Eds1995 定时任务好多坑呀,如果用 UTC 时区,就正常运行。改成东八区时区,就不行了。你们有遇到这个时区的问题吗?我的用的 django-celery-beat
    AlexMercerZ
        49
    AlexMercerZ  
       2019-01-08 14:52:08 +08:00
    @zhuangzhuang1988 没啥用你就别用 bb 啥
    AlexMercerZ
        50
    AlexMercerZ  
       2019-01-08 14:56:40 +08:00
    @zhuangzhuang1988 因为你垃圾 所以你觉得没啥用
    YuuuZeee
        51
    YuuuZeee  
    OP
       2019-01-09 21:24:24 +08:00
    @jerrychan807 我也遇到了 最后解决方式是用 crontabjob
    TesterCC
        52
    TesterCC  
       2019-01-31 21:29:29 +08:00
    用 celery 发邮件和处理定时任务的+1,另一个同事用来跑爬虫,目前开发中并没有什么特别深入的使用。主要也是担心不稳定。
    noobsheldon
        53
    noobsheldon  
       2019-04-17 06:53:11 +08:00 via Android
    gsw945
        54
    gsw945  
       2019-05-07 20:05:36 +08:00
    突然收到感谢,受宠若惊,刚好后面写了一个 apscheduler + rpyc 的 Demo,GitHub 地址如下:
    https://github.com/gsw945/schedule-system
    工作中,定时任务和异步任务,我全部用 apscheduler 了,没有使用 Celery。
    补充:如果异步任务的执行,需要进度更新通知,可以 job_id 为键,使用 redis 存储进度信息,或者使用 websocket 通知进度信息。
    异步任务进度通知,曾经用过:
    1. redis-py 的 redis.StrictRedis.rpush()
    2. socket.io + python-socketio
    19ftx
        55
    19ftx  
       317 天前
    @eloah 被测试逼过,最后搞了个规避方法才算翻篇
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     852 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 21:57 PVG 05:57 LAX 14:57 JFK 17:57
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86