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

时间:2012-09-11 02:46:41

标签: celery django-celery

我使用mod_wsgi通过Apache设置了一个Django项目,我现在正在尝试添加django-celery来运行定期和计划任务。不过,我偶尔会遇到错误消息,但我没有找到解释它们的含义。

当我使用以下方式启动Celerybeat时

./manage.py celery beat

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

Message Error: cannot add item to database

celerybeat raised exception <class 'dbm.error'>: error('cannot add item to database',)

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

我是否需要使用celerybeat-schedule文件来避免此错误?我认为这可能是一个权限问题,但我看不出任何问题。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我可以通过安装python3-gdbm(或python3-dbm)包并重新创建计划文件来解决此问题。

答案 2 :(得分:-1)

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

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

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

如果你走这条路,你需要pip install django-celery并更新你的数据库。