2010-07-23 34 views
12

Ich habe eine Django-Webanwendung und einige Django-Piston-Dienste erstellt. Unter Verwendung einer Webschnittstelle sendet ein Benutzer einige Daten, die an einen Webdienst gesendet werden, und dieser Webdienst verwendet wiederum Djangosellerie, um eine Hintergrundaufgabe zu starten.Laufender Django-Sellerie in Produktion

Alles funktioniert gut in der Entwicklungsumgebung mit manage.py. Jetzt versuche ich dies auf einem richtigen Apache-Server zur Produktion zu bringen. Die Webanwendung und die Webdienste funktionieren in der Produktion gut, aber ich habe ernsthafte Probleme damit, dass selleryd als Daemon gestartet wird. Basierend auf diesen Anweisungen: http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html#running-the-worker-as-a-daemon Ich habe eine selleryconfig.py Datei erstellt und steckte sie in das Verzeichnis/usr/bin (das ist wo selleryd ist Speicherort auf meinem Arch Linux-Server).

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

aber wenn ich versuche, celeryd von der Kommandozeile starten ich die folgende Fehlermeldung erhalten:

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

nicht sicher, wo man von hier geht. Unten ist mein settings.py Abschnitt, da es für dieses Problem betrifft:

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

Ist 'CELERY_RESULT_DBURI' tatsächlich irgendwo eingestellt? –

+0

Ich habe versucht, diesen Wert auf die folgende Einstellung: CELERY_RESULT_BACKEND = 'AMQP' Aber ich erhalte eine Fehlermeldung, wenn ich versuche celeryd auszuführen: [2010-07-23 12: 46: 13.138: WARNUNG/MainProcess] erhöhen KeyError ("Fehlender Hostname für AMQP-Verbindung.") [2010-07-23 12: 46: 13,138: WARNUNG/MainProcess] KeyError [2010-07-23 12: 46: 13,138: WARNUNG/MainProcess]: [2010 -07-23 12: 46: 13,139: WARNING/MainProcess] 'Fehlender Hostname für AMQP-Verbindung.' Da ich diesen Fehler bekam und ich nirgendwo in der Dokumentation für Django-Sellerie finden konnte, dass dieser Wert gesetzt werden musste, nahm ich an, dass ich wieder etwas falsch machte. – Przemek

+0

Ich nehme an, dass die Einstellungen in selleryconfig.py liegen sollten, wenn sie in der Produktion laufen. und nicht in settings.py. Sollte in diesem Fall die Datei selleryconfig.py hinzugefügt werden? – Przemek

Antwort

8

So landete ich mit der Projektleitung auf django-Sellerie mit einem Chat auf. Ein paar Dinge. Der erste Sellerie muss mit 'manage.py selleryd' durchgeführt werden. Zweitens, in der Datei settings.py müssen Sie 'djclery importieren' Dieses Importproblem kann in der nächsten Version behoben werden, aber für jetzt müssen Sie dies tun.