2014-11-05 2 views
8

Я бег Джанго + сельдерей с celerybeat, и я получаю эту ошибкуДжанго сельдерей бить DBAccessError

.../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 не инициализирует. любые предложения относительно того, где я могу найти базу данных, к которой сельдерей пытается получить доступ?

Я бегу Джанго = 1.5 и Джанго-сельдерей == 3.1.10

ответ

17

Я спросил слишком рано!

ответ на мой вопрос, если кто-то другой сталкивается с той же проблемой.

Проблема была в том, что у меня не было разрешения на запись в папке моего проекта django.

из документации (http://celery.readthedocs.org/en/latest/userguide/periodic-tasks.html#starting-the-scheduler)

Удар должен хранить последние времена пробега задач в локальной файла базы данных (с именем celerybeat-график по умолчанию), поэтому необходимо доступ писать в текущий каталог

исправили проблему, запустив

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

Надеюсь, что это помогает кому-то.

Смежные вопросы