[求助] Python Celery 要求发送几千到上万份邮件,有什么好的实践吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
opengo
V2EX    问与答

[求助] Python Celery 要求发送几千到上万份邮件,有什么好的实践吗

  •  
  •   opengo 2021-07-20 12:25:17 +08:00 1637 次点击
    这是一个创建于 1554 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,业务需要一下子发送几千到上万份邮件,主要担心 celery 把内存打爆,或者发送过程中遭遇网络问题等,重试问题,请问各位有什么好的实践吗?

    目前打算用 group 加 skew 给每个任务依次延时,感觉发送周期可能又太长了

    9 条回复    2021-08-23 11:58:07 +08:00
    defunct9
        1
    defunct9  
       2021-07-20 12:46:39 +08:00
    不是该用 postfix 么,celery 扔到 postfix 就完事了
    DonaidTrump
        2
    DonaidTrump  
       2021-07-20 12:47:56 +08:00 via iPhone
    不会,没封右键作为一个任务,扔到队列里面,worker 一个一个去跑就完事了。一万封的话几个小时就发完
    DeWjjj
        3
    DeWjjj  
       2021-07-20 12:49:21 +08:00
    这是注册邮件吧,就直接写个队列执行就好了。
    实际上不会像楼上说的几个小时,因为你的业务不是均匀持续的。
    opengo
        4
    opengo  
    OP
       2021-07-20 13:54:14 +08:00
    @DeWjjj 业务是这样的,导入几千到数万条优惠券,每条优惠券都发给不同的邮箱,所以一下子任务堆积的比较多,想吸取一下各位 retry 时异常处理的经验
    opengo
        5
    opengo  
    OP
       2021-07-20 13:55:43 +08:00
    @defunct9 目前用的还是 django 自带的发送组件,我了解一下这个
    rev1si0n
        6
    rev1si0n  
       2021-07-20 15:58:57 +08:00
    你这什么任务内容 1 万个就爆内存了... 内存这东西又不贵,只管上
    rev1si0n
    &nbp;   7
    rev1si0n  
       2021-07-20 16:00:07 +08:00
    还有我比较好奇的是你是通过第三方发邮件的?现在的服务器发送邮件不都是很严格的嘛
    julyclyde
        8
    julyclyde  
       2021-07-22 13:46:33 +08:00
    并不需要 celery 啊
    让邮件服务器处理异步问题。你只需要快速把邮件交给服务器即可
    opengo
        9
    opengo  
    OP
       2021-08-23 11:58:07 +08:00
    @rev1si0n 这点内存倒是不会爆...主要是内存较小,考虑 stmp 服务器不稳定等极端情况下,这个帖子主要目的想了解下大量重试失败任务,处理起来有没有什么需要注意的地方

    发邮件最后按 celery 负载包装了几个 chunk,然后开了 celery 自动缩放让它自己玩去了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1364 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 23:58 PVG 07:58 LAX 16:58 JFK 19:58
    Do have faith in what you're doing.
    ubao msn 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