(Django)在后台连续运行异步服务器任务

时间:2018-05-08 12:08:02

标签: python django asynchronous webserver channels

我想让我的服务器上运行一个类,它包含一个连接的蓝牙套接字,并不断检查传入的数据,然后可以通过解释。原则上,类结构如下所示:

解释器:

- > connect(初始化类并启动循环)

- >循环(在后台连续运行)

- >断开(停止循环)

这个类应该在某个时刻启动,然后在后台连续运行,http请求可能不时需要来自类属性的数据,但它应该自己运行。

我不知道如何实现这一目标,并且不想了解如何做到这一点,但想知道我应该从哪里开始,比如这种过程是如何调用的。

1 个答案:

答案 0 :(得分:0)

Django本身不支持任何后台进程 - 一切都是基于请求 - 响应循环。

我不知道你想要做什么,甚至有一个专用的名字。但最肯定的是 - 这是可能的。但是不要用这个解决方案把自己绑在Django上。

我将实现这一目标的方法是运行一个单独的Python进程,该进程负责保持与设备的连接,并在请求时以某种方式返回所需的数据。

你唯一的困难是确定如何从Django与该进程进行通信。因为,就像我说的,django是基于请求的,辅助应用程序可以将一些数据暴露给您的Django应用程序 - 它可以执行以下任何操作:

  • 公开一个简单的HTTP Rest API
  • 公开一个只在连接后立即返回数据的UNIX套接字
  • 将数据连续转储到Django可以读取的某个文件/数据库/ mmap /队列