我正在使用celerybeat运行django + celery,我收到此错误
.../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
来操作芹菜。
似乎运行芹菜工人不是问题,但celerybeat
工人没有初始化。关于我在哪里可以找到芹菜试图访问的数据库的任何建议?
我正在运行django = 1.5和django-celery == 3.1.10
答案 0 :(得分:18)
我太早问了!
回答我自己的问题,以防其他人遇到同样的问题。
问题是因为我的django项目正在运行的文件夹中没有写入权限。
来自文档(http://celery.readthedocs.org/en/latest/userguide/periodic-tasks.html#starting-the-scheduler)
Beat需要将任务的最后运行时间存储在本地 数据库文件(默认名称为celerybeat-schedule),因此需要 访问当前目录中的写入
通过运行
解决了问题python manage.py celeryd -B -s /path/to/where/i/have/write-access/celerybeat-schedule
希望这有助于某人。