守护进程与django



想看看其他人认为什么是以下方面的最佳架构。

我正在尝试构建一个具有web前端的项目,该项目要求向其他长期运行的进程发出命令,这些进程将向django-db返回结果。该应用程序必须是可扩展的(在数据库和处理能力方面),并且能够快速运行。

我想到了下面的场景,但想看看是否有更好的方法。

Django web应用程序从用户(通过web表单或API)接收指令,将此"请求"放入另一个进程(异步运行以获得性能,无启动成本)可以使用的队列(哪种技术最好?)(它是如何做到的?通过监视队列?IPC?)。这个应用程序然后返回它的处理结果,需要将其放回django数据库(最好通过另一个队列或直接访问来完成?)

关于理智的思考。。。和技术。教程链接会很棒!

  • 如何运行异步进程。芹菜,主机守护进程
  • 如何从主django-app/db获取数据。队列,套接字IPC
  • 在这里的某个地方使用django信号

我想你已经回答了你的问题。深入了解芹菜:http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html

使用芹菜,您可以创建一个任务队列(通过RabbitMq,这是推荐使用的队列)。然后,您可以编写worker.py脚本,其中将包含您的长期运行任务。你的django网络应用程序可以调用你的员工中定义的任务,例如:myfunc.delay(4)Celery任务也可以配置为返回结果,或者任务可以通过更新Django应用程序使用的数据库中的数据来返回结果。

Celery允许您通过在任意数量的机器上运行多个工作程序来进行扩展,并且可以通过添加更多的rabbitMq队列来轻松添加更多的消息/任务队列。

相关内容

  • 没有找到相关文章

最新更新