我想知道什么是为了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应用程序和芹菜工人代码是相同的(如在一个单一的存储库)。
当部署我一定要具有相同的代码发布无处不在,以避免与ORM等任何惊喜...
Celery
开始与该Django应用程序的引用,使之具有访问模型,等等。
工人和主要的应用程序之间的通信发生或者通过消息队列(rabbitmq
或redis
...)或通过数据库(如,芹菜工人工作直接在数据库中,因为它知道的机型,等...) 。
我不知道,如果下面的微服务的口头禅,但它确实工作:)
芹菜的.send_task
或.signature
可能会有所帮助:https://www.distributedpython.com/2018/06/19/call-celery-task-outside-codebase/