解耦和Dockerize Django和Celery

我想知道什么是最好的方法将芹菜与Django分离,以便将这两个部分停靠并使用
docker swarm service?通常一个人开始他们的芹菜工人和芹菜击败使用引用Django应用程序的命令:

celery worker -A my_app
celery beat -A my_app

从此我相信芹菜从设置文件和celery.py文件中获取配置信息,这很容易移动到微服务.我不完全理解的是这些任务将如何利用Django ORM?或者是不是真的微服务口头禅和Celery应该被设计为对Django REST Framework API进行GET / POST调用以获得完成任务所需的数据?

最佳答案 我使用一个设置,其中django应用程序和它的芹菜工作者的代码是相同的(如在单个存储库中).

在部署时我确保在任何地方都有相同的代码版本,以避免任何意外的ORM等…

Celery首先引用django应用程序,以便它可以访问模型等…

工作人员和主应用程序之间的通信通过消息传递队列(rabbitmq或redis …)或通过数据库进行(因为,芹菜工作者直接在数据库中工作,因为它知道模型等…) .

我不确定这是否遵循微服务口头禅,但它确实有效:)

点赞