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

(Django) Running asynchronous server task continously in the background

我想在我的服务器上安装一个 class 运行,它包含一个已连接的蓝牙套接字并不断检查传入数据,然后可以对其进行解释。原则上 class 结构如下所示:

口译员:

-> 连接(初始化 class 并开始循环)

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

-> 断开连接(停止循环)

这个 class 应该在某个时候启动,然后 运行 在后台持续进行,有时 http 请求可能需要来自 class 的属性的数据,但它本身应该 运行。

我不知道如何完成这个,也不想得到关于如何做的描述,但想知道我应该从哪里开始,比如这种过程是如何调用的。

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

我不知道你想做的事情是否有专门的名称。但最肯定的是 - 这是可能的。但不要将自己与 Django 联系起来。

我要实现的方法是 运行 一个单独的 Python 进程,负责保持与设备的连接并根据请求 return 所需的某种方式的数据。

您遇到的唯一困难是确定如何从 Django 与该进程通信。因为,就像我说的,django 是基于请求的,所以辅助应用程序可以向您的 Django 应用程序公开一些数据——它可以执行以下任何操作:

  • 公开一个极其简单的 HTTP Rest API
  • 公开一个 UNIX 套接字,该套接字在连接后立即 return 数据
  • 持续将数据转储到 Django 可以读取的file/database/mmap/queue