最近在django项目中使用celery时碰见的bug:redis
在使用celery+redis进行异步任务的时候,有的任务可以执行成功,有的任务不能执行成功,错误的任务报错(notregistered):django
重启redis服务没法解决。异步
解决办法:从新开启一个redis服务,便可解决(个人解决办法),猜想更换broker库便可,例:0 -> 2。blog
缘由猜想:配置
出现这种问题,通常都是对celery任务代码或配置信息进行了相关修改(clery任务调用方式或传入参数的修改,celery的backend存放位置的修改等)bug
有多是redis中存在相关持久化文件,记住了前面的任务和配置信息,使得redis(broker)在进行任务分发给worker的时候出现混乱,形成错误(notregistered,got an unexpected argument等等)celery
将djcelery>management>commands>celery.py>将如下代码注释掉便可command
解决方案:删除项目中存在的celerybeat.pid文件,从新启动便可im