将多线程任务运行器与 Django Web 应用程序连接

Connecting multithreaded task runner with django web application

我正在使用 Django 开发 Web 服务。除了 Web 应用程序之外,我还有一个包含大约 40 个函数的单独模块,这些函数接受一些参数,执行一些网络绑定任务和 return 结果。可以从 Django 视图调用这些函数(或入口点函数)。

这是我要实现的流程。

  1. 用户可以从 Web 应用程序提交 URL 以开始操作。
  2. 该请求应在服务器中并行启动这些功能(使用 URL 作为参数)(不一定同时启动)
  3. 用户可以从 Web 应用程序发出请求,以获取已完成任务的列表和正在进行的操作的结果。
  4. 多个用户可以向 Web 应用程序提交 URLs 并分别启动操作(每个用户获得一个包含 40 个结果的列表)

目前我正在试验 ThreadQueue 类 来实现这一点。我想知道的是如何在没有这么多线程的情况下管理这个流程?我应该如何保持两个操作会话之间的分离?有什么方法可以让我与 django 的功能合作吗?

我所要求的只是关于如何组织事情以实现这一目标的基本准则。

听起来您可以在 celery 中调用函数,celery 是 python 的分布式任务队列模块。在此处查看与 django 集成的文档:http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html

有一个名为 django 的模块- celery-beat 您需要调度任务。