启动CeleryBeat时出现Django Celery错误-无法将项目添加到数据库

kro*_*nak 7 celery django-celery

我已经使用mod_wsgi通过Apache建立了一个Django项目,现在我正在尝试将django-celery添加到混合中以运行定期和计划的任务。我偶尔会遇到错误消息,但是我没有找到它们的含义的解释。

当我使用以下命令启动Celerybeat时:

./manage.py celery beat
Run Code Online (Sandbox Code Playgroud)

我经常会遇到以下两个错误之一:

Message Error: cannot add item to database

celerybeat raised exception <class 'dbm.error'>: error('cannot add item to database',)
Run Code Online (Sandbox Code Playgroud)

我可以看到celerybeat在项目目录中生成了两个文件:celerybeat-schedule.dir和celerybeat-schedule.pag。我很确定这些文件是错误消息中提到的“数据库”。如果删除这些文件,Celerybeat通常会运行几次而不会出现问题,但随后错误会再次出现。

我需要对celerybeat计划文件进行某些操作来避免此错误吗?我以为这可能是权限问题,但看不到任何问题。

小智 8

rm celerybeat.db,然后重新启动celerybeat就可以了


scu*_*cum -1

有同样的问题,但无法弄清楚。

解决方法是使用数据库来存储计划:

celery -A proj beat -S djcelery.schedulers.DatabaseScheduler

如果您选择这条路线,您将需要pip install django-celery更新您的数据库。