django celery beat DBAccessError



我正在运行带有celerybeat的django+芹菜,我得到了这个错误

.../local/lib/python2.7/site-packages/celery/beat.py", line 367, in setup_schedule
    writeback=True)
  File "/usr/lib/python2.7/shelve.py", line 239, in open
    return DbfilenameShelf(filename, flag, protocol, writeback)
  File "/usr/lib/python2.7/shelve.py", line 223, in __init__
    Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback)
  File "/usr/lib/python2.7/anydbm.py", line 85, in open
    return mod.open(file, flag, mode)
  File "/usr/lib/python2.7/dbhash.py", line 18, in open
    return bsddb.hashopen(file, flag, mode)
  File "/usr/lib/python2.7/bsddb/__init__.py", line 364, in hashopen
    d.open(file, db.DB_HASH, flags, mode)
DBAccessError: (13, 'Permission denied')
[2014-11-05 06:39:20,901: INFO/MainProcess] mingle: all alone

我用python manage.py celeryd -B跑芹菜拍。运行celenie工作程序似乎不是问题所在,但celerybeat工作程序没有初始化。关于在哪里可以找到芹菜试图访问的数据库,有什么建议吗?

我运行的是django=1.5和django-celerie=3.1.10

我问得太早了!

回答我自己的问题,以防其他人面临同样的问题。

这个问题是因为我在django项目运行的文件夹中没有写权限。

从文档中(http://celery.readthedocs.org/en/latest/userguide/periodic-tasks.html#starting-调度器)

Beat需要将任务的最后运行时间存储在本地数据库文件(默认名称为celeybeat schedule),因此它需要在当前目录中写入的访问权限

通过运行修复了问题

python manage.py celeryd -B -s /path/to/where/i/have/write-access/celerybeat-schedule

希望这能帮助到别人。

相关内容

  • 没有找到相关文章