使用django Web应用程序连接多线程任务运行器

时间:2018-04-01 11:55:14

标签: django multithreading python-3.x python-multithreading

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

以下是我想要实现的流程。

  1. 从Web应用程序中,用户可以提交URL以开始操作。
  2. 该请求应该在服务器中并行启动这些功能(以URL作为参数)(不一定全部一次)
  3. 用户可以从Web应用程序请求获取已完成任务的列表以及正在进行的操作的结果。
  4. 多个用户可以向Web应用程序提交URL并单独启动操作(每个用户获得40个结果的列表)
  5. 目前,我正在尝试ThreadQueue类来实现这一目标。我想知道的是如何在不获得如此多线程的情况下管理此流程?我该如何保持两个操作会话之间的分离?有什么方法可以合作django的功能吗?

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

1 个答案:

答案 0 :(得分:1)

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

有一个名为django-celery-beat的模块需要安排任务。