2012-01-03 28 views
10

Dziwne problemy tutaj. Pracowałem nad aplikacją Django i teraz próbuję zaimplementować aplikację Celery. Potrzebuję zarówno zwykłych zadań, jak i zadań okresowych, które należy umieścić w kolejce. Mogę uruchomić celeryd po prostu dobrze i wykonywać z nim zadania (uruchamiam je poleceniem python manage.py celeryd start --settings=settings --loglevel=INFO).Seler + Django: Nie można uruchomić selerabeat w systemie Windows 7

W systemie Windows nie można wykonać -beat/-b, aby włączyć tryb beat; musisz rozpocząć selerabeat jako oddzielną usługę (jest to opisane w sekcji FAQ dokumentacji Celery). Gdybym wpisz w wierszu poleceń - python manage.py celerybeat -s djcelery.schedulers.DatabaseScheduler --settings=settings --loglevel=INFO - otrzymuję błąd tak:

[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 

i celerybeat nigdy rzeczywiście zaczyna. Nie mogę wykonywać żadnych zadań okresowych ... Jakieś pomysły? Znalazłem tylko one other page, gdzie ktoś podkreślił podobny błąd, ale nie zaproponowano rozwiązania.

Jeśli potrzebujesz dodatkowych informacji, daj mi znać. Jestem zaskoczony, ponieważ nie mogę znaleźć żadnych informacji na ten temat i próbowałem rozwiązać ten problem przez cały dzień dzisiaj ... Dziękuję.

Odpowiedz

13

Wyszukaj w systemie plików dla tego pliku pid i go usunąć. Na komputerach uniksowych oznacza to zazwyczaj, że program nie został poprawnie zamknięty. Powinieneś sprawdzić, czy działa on już w menedżerze zadań, jeśli tak, to go zabić i usunąć ten plik.

Następnie spróbuj ponownie.

Jeśli nie ma pliku pid, prawdopodobnie oznacza to problem z oprogramowaniem, ponieważ prawdopodobnie został przeniesiony z systemu Unix?

+1

Zatrzymałem usługę RabbitMQ ręcznie, odnalazłem i usunąłem 'celerybeat.pid', a następnie uruchomiłem RabbitMQ z powrotem - i teraz działa. Wielkie dzięki, nie wiem, dlaczego sam tego nie próbowałem ... Sądzę, że po prostu byłem zbyt nieśmiały. Dla każdego, kto chce uniknąć tej niedogodności - upewnij się, że zawsze przerwiesz klawiaturę seleryd i celerybeat przed zamknięciem poleceń! – hangtwenty

3

W moim przypadku projektu django w systemie Windows plik ten już istniał w katalogu głównym projektu Django. Usunąłem ten plik i proces przebiegał bez żadnego błędu. enter image description here

W „celerybeat.pid” został już istniejących, ponieważ wpadłem seler bicie z innego komputera i pchnął repo git do chmury. Kiedy wyciągnąłem repo na działającym komputerze i uruchomiłem proces, spowodowało to błąd w odniesieniu do pliku "celerybeat.pid" utworzonego wcześniej przez inny komputer. Usunięcie "selerybeat.pid" sprawiło, że działało.

Powiązane problemy