In fase di sviluppo, è un po 'una seccatura per eseguire il celeryd
e il server di sviluppo Django. È possibile, ad esempio, chiedere a celery
di eseguire le attività in modo sincrono durante lo sviluppo? O qualcosa di simile?Sviluppare con Django + Celery senza eseguire `celeryd`?
risposta
Sì, è possibile farlo impostando CELERY_ALWAYS_EAGER = True
nelle impostazioni.
http://docs.celeryproject.org/en/latest/configuration.html#task-execution-settings
C'è anche una consuetudine Django prova corridore in django-sedano che aiuta con CELERY_ALWAYS_EAGER. Ulteriori informazioni sull'utilizzo di Celery con Django su the docs.
Nella versione 4.0
di sedano CELERY_ALWAYS_EAGER
impostazione è stato sostituito da CELERY_TASK_ALWAYS_EAGER
in Django settings.py
o task_always_eager
nativamente in celery conf
.
Poiché le numerose modifiche nella configurazione di sedano dalla versione 3.x alla 4.x sono distribuite su più righe, suggerisco di utilizzare lo strumento di migrazione delle impostazioni incorporato.
celery upgrade settings --django
fonte:
Fortunatamente non c'è bisogno di modificare manualmente i file, come le impostazioni di aggiornamento sedano --django programma dovrebbe fare la cosa giusta.
http://docs.celeryproject.org/en/latest/whatsnew-4.0.html#step-4-upgrade-to-celery-4-0
Questo metodo è dolorosamente lento a volte. Problemi noti? – Mikhail
Molto probabilmente è lento perché esegue le attività in modo sincrono (come desiderato) e sono lenti. Il collegamento –