美文网首页
Celery版本升级记录

Celery版本升级记录

作者: luckriver | 来源:发表于2018-12-23 21:50 被阅读0次

    Django项目中使用了旧版本的celery,希望升级到最新版,在此记录最近今天的工作。

    版本变更 3.1.23 -> 4.2.1
    升级方案 参考官方文档

    主要变化

    • Django最低支持版本1.8
    • 4.x是最后一个支持 python2 的大版本,5.0起不再支持
    • 任务消息协议升级,且不向后兼容。旧版本的消息投递之后,新版本的worker将不能处理
    • 配置名称建议使用小写,如 CELERY_DEFAULT_RATE_LIMIT 替换为 task_default_rate_limit。向后兼容,可以不修改
    • 不再需要 djcelery,这个在之前版本应该就是这样了

    依赖项

    • djcelerycelery 4.x不再兼容,需要移除相关配置
    • raven INSTALLED_APPS 去掉 djcelery 后报错
    Put 'djcelery' in your INSTALLED_APPS setting in order to use the sentry celery client.
    

    目前看 raven 并没有直接引用 djcelery 包,可以按如下方式修改 INSTALLED_APPS并升级到新版6.9.0

    Raven配置
    • redis 如果broker选择的 redis,需要将redis包升级到3.0.1,否则worker不能启动。

    • librabbitmq 和最新版的celery已经不兼容,不在使用。升级过程中出现worker不能启动的问题

      通过修改 broker_url 可以规避。pyamqplibrabbitmq在 API 上是兼容的,因此可以直接切换

    切换步骤

    • 先将celery升级到3.1.25, 这一版提供了协议兼容,可以同时处理两种类型的协议
    • code change 新版celery引用的方式发生了变化,参见文档
    • celery升级到4.2.1,代码上线。如果有通过 apply_async 启动的定时任务,上线时不要重启worker,确保消息在旧版的worker都处理完之后再重启

    相关文章

      网友评论

          本文标题:Celery版本升级记录

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