【问题标题】:Django Celery Error When Starting CeleryBeat - Cannot Add Item To Database启动 CeleryBeat 时出现 Django Celery 错误 - 无法将项目添加到数据库
【发布时间】:2023-03-09 08:28:01
【问题描述】:

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

【问题讨论】:

  • 删除这个文件:celerybeat-schedule.db

标签: celery django-celery


【解决方案1】:

遇到了同样的问题,无法解决。

一种解决方法是使用数据库来存储时间表:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      只需 rm celerybeat.db,然后重新启动 celerybeat 即可

      【讨论】:

        猜你喜欢
        • 2012-02-01
        • 2013-02-16
        • 2017-05-05
        • 2017-07-25
        • 2021-07-09
        • 2015-10-06
        • 1970-01-01
        • 1970-01-01
        • 2015-01-31
        相关资源
        最近更新 更多