Ho creato un'applicazione web Django e alcuni servizi Django-Piston. Utilizzando un'interfaccia web, un utente invia alcuni dati che vengono inviati a un servizio web e che il servizio web a sua volta utilizza Django-celery per avviare un'attività in background.Esecuzione di Django-Celery in produzione
Tutto funziona correttamente nell'ambiente di sviluppo utilizzando manage.py. Ora sto cercando di spostare questo alla produzione su un server Apache appropriato. L'applicazione web e i servizi Web funzionano bene in produzione ma sto avendo seri problemi a partire da celeryd come demone. Sulla base di queste istruzioni: http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html#running-the-worker-as-a-daemon Ho creato un file celeryconfig.py e lo ho inserito nella directory/usr/bin (questo è il posto in cui si trova celeryd sul mio server arch linux).
CELERYD_CHDIR="/srv/http/ControllerFramework/"
DJANGO_SETTINGS_MODULE="settings"
CELERYD="/srv/http/ControllerFramework/manage.py celeryd"
Tuttavia quando provo ad iniziare celeryd dalla riga di comando ottengo il seguente errore:
"Missing connection string! Do you have "
celery.exceptions.ImproperlyConfigured: Missing connection string! Do you have CELERY_RESULT_DBURI set to a real value?
Non sono sicuro dove andare da qui. Qui di seguito è la mia sezione settings.py quello che attiene a questo problema:
BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_USER = "controllerFramework"
BROKER_PASSWORD = "******"
BROKER_VHOST = "localhost"
È impostato "CELERY_RESULT_DBURI" in qualche luogo? –
Ho provato a installare tale valore al seguente: CELERY_RESULT_BACKEND = 'AMQP' ma ottengo un errore quando si tenta di eseguire celeryd: [2010-07-23 12: 46: 13.138: AVVISO/MainProcess] alzare KeyError [2010-07-23 12: 46: 13.138: AVVISO/MainProcess]: [2010 KeyError [: 46:: 13.138 AVVISO/MainProcess 2010-07-23 12] ("Missing hostname per il collegamento AMQP.") -07-23 12: 46: 13,139: WARNING/MainProcess] 'Nome host mancante per la connessione AMQP.' Da quando ho ricevuto questo errore e non sono riuscito a trovare da nessuna parte nella documentazione di django-celery che fosse necessario impostare questo valore, supponevo che stavo facendo qualcosa di sbagliato, di nuovo. – Przemek
Scoprirò che forse durante la produzione in produzione le impostazioni dovrebbero essere in celeryconfig.py? e non in settings.py. In tal caso, dovevano essere aggiunti i file celeryconfig.py? – Przemek