美文网首页
2016-09-23重大失误,记一次celery失误

2016-09-23重大失误,记一次celery失误

作者: CHUWT | 来源:发表于2016-09-24 11:01 被阅读0次

    事件

    23日晚公司app分发奖励,后台设置错误,导致23:00到23:22期间内,原本只分发一次的奖励,每分钟重复分发,多分发了21份奖励,导致损失10k余元。

    分析

    定时任务使用celery写的,第一个想到的是celerybeat没有重启,重启celerybeat之后,状况仍然存在,要炸。打开代码分析,找到原因。删除redis队列的信息,重启,ok。

    原因

    #代码
    'daily-reward':
     {
        'task': 'running.tasks.daily_reward',
        'schedule': crontab(hour='23'),   
       'args': (),
    },
    

    原因出在schedule此时设置的是hour=23,会导致在23时每分钟都会重复任务。正确的写法是

      'schedule': crontab(minute=0, hour='23',
    

    尾声

    归根结底是自己对celery的掌握不够到位,导致这次损失,引以为戒,不说了,吃土去了。

    相关文章

      网友评论

          本文标题:2016-09-23重大失误,记一次celery失误

          本文链接:https://www.haomeiwen.com/subject/qqjxyttx.html