使用Django + Celery开发而不运行`celeryd`?

Dav*_*ver 29 python django celery

在开发中,运行celeryd和Django开发服务器一样麻烦.例如,是否有可能要求celery在开发期间同步运行任务?或类似的东西?

Mar*_*vin 46

是的,您可以通过设置CELERY_TASK_ALWAYS_EAGER = True进行设置.
http://docs.celeryproject.org/en/latest/configuration.html#task-execution-settings

  • 最有可能的是它很慢,因为它正在同步运行任务(根据需要)而且速度很慢. (2认同)

tob*_*ych 7

在django-celery中还有一个自定义Django测试运行器,可以帮助CELERY_ALWAYS_EAGER.阅读有关在文档中使用带有Django的Celery的更多信息.


Ole*_*sov 5

4.0Celery 版本中,CELERY_ALWAYS_EAGER设置已CELERY_TASK_ALWAYS_EAGER在Django 中替换为,settings.pytask_always_eager在本地替换celery conf

由于celery配置从3.x版本到4.x的众多变化分布在许多行中,因此我建议使用内置的设置迁移工具。

celery upgrade settings --django

资源:

幸运的是,您不必手动更改文件,因为celery升级设置--django程序应该做正确的事情。

http://docs.celeryproject.org/en/latest/whatsnew-4.0.html#step-4-upgrade-to-celery-4-0