2010-07-23 32 views
12

I został zbudowany aplikacji internetowej Django i niektóre usługi Django-tłokowego. Za pomocą interfejsu WWW użytkownik przesyła niektóre dane, które są POSTED do usługi internetowej, a ta usługa sieciowa z kolei używa Django-celery do rozpoczęcia zadania w tle.Running Django Seler w produkcji

Wszystko działa poprawnie w środowisku programowania przy użyciu manage.py. Teraz próbuję przenieść to do produkcji na odpowiednim serwerze apache. Aplikacja sieciowa i usługi sieciowe działają dobrze w produkcji, ale mam poważne problemy z uruchamianiem selera jako demona. Na podstawie tych instrukcji: Stworzyłem plik celeryconfig.py i utknąłem go w katalogu/usr/bin (to miejsce, w którym seleryd znajduje się na moim archipilotycznym serwerze linuxowym).

CELERYD_CHDIR="/srv/http/ControllerFramework/" 
DJANGO_SETTINGS_MODULE="settings" 
CELERYD="/srv/http/ControllerFramework/manage.py celeryd" 

gdy próbuję jednak zacząć celeryd z linii komend pojawia się następujący błąd:

"Missing connection string! Do you have " 
celery.exceptions.ImproperlyConfigured: Missing connection string! Do you have CELERY_RESULT_DBURI set to a real value? 

Nie wiesz gdzie iść stąd. Poniżej jest moje settings.py odcinek, gdyż odnosi się do tego problemu:

BROKER_HOST = "localhost" 
BROKER_PORT = 5672 
BROKER_USER = "controllerFramework" 
BROKER_PASSWORD = "******" 
BROKER_VHOST = "localhost" 
+0

jest 'CELERY_RESULT_DBURI' faktycznie ustawić gdzieś? –

+0

Próbowałem ustawienie tej wartości na następujące kwestie: CELERY_RESULT_BACKEND = 'AMQP' Ale pojawia się błąd przy próbie uruchomienia celeryd: [2010-07-23 12: 46: 13138: OSTRZEŻENIE/MainProcess] podnieść KeyError ("Brak nazwy hosta dla połączenia AMQP.") [2010-07-23 12: 46: 13,138: OSTRZEŻENIE/MainProcess] KeyError [2010-07-23 12: 46: 13,138: OSTRZEŻENIE/MainProcess]: [2010 -07-23 12: 46: 13,139: WARNING/MainProcess] "Brak nazwy hosta dla połączenia AMQP." Ponieważ mam ten błąd i nie mogłem nigdzie znaleźć w dokumentacji Django selera, że ​​wartość ta musiała być ustawiona Sądziłem, że robię coś źle, znowu. – Przemek

+0

Zgaduję, że może podczas uruchamiania w produkcji ustawienia powinny znajdować się w celeryconfig.py? a nie w pliku settings.py. W takim przypadku, czy plik celeryconfig.py powinien zostać dodany? – Przemek

Odpowiedz

8

Więc skończyło się o rozmowę z wiodącym projektu na Django selera. Kilka rzeczy. Najpierw seler musi być uruchomiony przy użyciu "manage.py celeryd". Po drugie, w pliku settings.py musisz "importować djcelery". Ten problem z importowaniem może zostać naprawiony w następnej wersji, ale na razie musisz to zrobić.