2012-01-03 5 views
10

Нечетные проблемы здесь. Я разрабатываю приложение Django, и теперь я пытаюсь реализовать Celery. Мне нужны как обычные задачи, так и периодические задачи, которые нужно поставить в очередь. Я могу запустить celeryd просто отлично, и выполнять задачи с ним (я начинаю его с команды python manage.py celeryd start --settings=settings --loglevel=INFO).Celery + Django: не удается запустить celerybeat на Windows 7

В Windows вы не можете сделать -beat/-b для включения режима бит; вам необходимо запустить celerybeat как отдельную услугу (это указано в разделе часто задаваемых вопросов в документах Celery). Если я печатаю это в командной строке - python manage.py celerybeat -s djcelery.schedulers.DatabaseScheduler --settings=settings --loglevel=INFO - я получаю сообщение об ошибке, как это:

[2012-01-02 19:06:52,009: WARNING/MainProcess] ERROR: Pidfile (celerybeat.pid) a 
lready exists. 
Seems we're already running? (PID: 2364) 
[2012-01-02 19:06:52,012: INFO/MainProcess] process shutting down 

и celerybeat никогда не начинается. Поэтому я не могу выполнять какие-либо периодические задачи ... Любые идеи? Я только нашел one other page, где кто-то выделил аналогичную ошибку, но не было предложено никакого решения.

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Я сбит с толку, потому что я не могу найти никакой информации по этому вопросу, и сегодня я пытался решить эту проблему весь день ... Спасибо.

ответ

13

Найдите свою файловую систему для этого файла pid и удалите ее. На машинах Unix, которые обычно означают, что программа не была отключена правильно. Вы должны проверить, не запущен ли он в диспетчере задач, если он его убил, и удалите этот файл.

Затем повторите попытку.

Если нет файла pid, возможно, это проблема с программным обеспечением, поскольку он был портирован из unix, возможно?

+1

Я остановил службу RabbitMQ вручную, нашел и удалил 'celerybeat.pid', а затем начал резервное копирование RabbitMQ - и теперь он работает. Большое спасибо, я не знаю, почему я сам этого не пробовал ... Полагаю, я просто был слишком робок. И для тех, кто хочет избежать этого неудобства - убедитесь, что вы всегда прерываете клавиатуру celeryd и celerybeat перед закрытием командной строки! – hangtwenty

3

В моем случае проекта django в Windows этот файл уже существует в корне проекта Django. Я удалил этот файл, и процесс прошел без каких-либо ошибок. enter image description here

«celerybeat.pid» уже существует, потому что я побежал на дереве с другого компьютера и нажал git repo на облако. Когда я вытащил репо на свой рабочий компьютер и запустил процесс, он дал мне ошибку, ссылаясь на файл «celerybeat.pid», созданный ранее другим ПК. Удаление «celerybeat.pid» заставило его работать.