9

我已经使用 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 文件做些什么吗?我认为这可能是权限问题,但我看不到任何问题。

4

3 回答 3

22

只需 rm celerybeat.db,然后再次启动 celerybeat 即可

于 2018-06-21T04:17:33.857 回答
0

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

于 2016-09-13T18:27:16.843 回答
-1

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

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

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

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

于 2014-05-06T02:45:49.940 回答