去耦和Dockerize Django和芹菜

问题描述 投票:5回答:2

我想知道什么是为了dockerize两个部分,并使用docker swarm service从Django中分离芹菜的最佳方式?通常,一个人开始了芹菜的工人和使用引用有Django应用程序的命令芹菜拍:

celery worker -A my_app
celery beat -A my_app

从这个我相信芹菜拿起从设置文件和文件celery.py这是很容易移动到微服务配置信息。我不完全理解的是任务将如何利用Django的ORM?或者是不是真正的微服务的口头禅和芹菜的设计应使GET / POST调用REST的Django框架的API,它需要完成任务的数据?

django docker celery django-celery
2个回答
2
投票

我用一种设定,同时为Django应用程序和芹菜工人代码是相同的(如在一个单一的存储库)。

当部署我一定要具有相同的代码发布无处不在,以避免与ORM等任何惊喜...

Celery开始与该Django应用程序的引用,使之具有访问模型,等等。

工人和主要的应用程序之间的通信发生或者通过消息队列(rabbitmqredis ...)或通过数据库(如,芹菜工人工作直接在数据库中,因为它知道的机型,等...) 。

我不知道,如果下面的微服务的口头禅,但它确实工作:)


0
投票

芹菜的.send_task.signature可能会有所帮助:https://www.distributedpython.com/2018/06/19/call-celery-task-outside-codebase/

© www.soinside.com 2019 - 2024. All rights reserved.