问题记录——celery的beat报错:UnpicklingError
在启动定时器任务的时候,celery-beat启动不起来了,报错 :
UnpicklingError: pickle data was truncated
由于没有修改过代码,也没有变更过服务器,服务器资源都是正常使用状态。但多次启动celery命令后发现:偶尔一两次跑定时任务虽然仍旧报错,但可以执行一两次定时任务后又表现异常,没有任何信息输出。
- celery启动指令
celery -B -A celery_app worker --loglevel=warn
- 错误信息截图
解决方法:
3.观察文件:
和celery_app同目录下,有三个文件:
celerybeat-schedule.bak
celerybeat-schedule.dir
celerybeat-schedule.dat
- 打开文件celerybeat-schedule.bak 查看信息:
- 问题解决方法:
删除三个文件
rm celerybeat-schedule.bak
rm celerybeat-schedule.dir
rm celerybeat-schedule.dat
-
使用启动指令重启celery
-
查看 celerybeat-schedule.bak文件:
-
总结
当celerybeat启动的时候会在启动目录中生成 celerybeat-schedule.xx文件,网上说删除celerybeat-schedule文件即可。
我查询到的关于celery我出现这个错误的信息很少,但大多都是说的celery启动时报错,虽问题不同,但我也使用相同方法删除文件方式解决了。具体原因暂不清楚。
完成啦~