2024-05-17 07:16:14 发布
网友
我正在编写一个带有Flask后端的React应用程序,我希望能够通过串行端口接收数据,处理这些数据,并将其绘制成图形。目前,我正在使用后端发送某些数据(当前时间和可用端口)以作出反应。我想设置一个后台Python线程,该线程将连续运行,使用pyserial从串行端口读取数据,对其进行处理,并将其发送到React,但我不确定实现这一点的最佳方法是什么。我最初的搜索把我带到了Celery;然而,我不确定这是否是一个连续任务的好选择。非常感谢您的帮助
问题是,从串行端口读取数据通常是以阻塞方式完成的。这意味着您不定期轮询,而是打开端口一次,然后一直读取,等待新数据的到来
您需要的是一个单独的thread。这是与普通web服务器并行运行的程序的一部分。然后,您需要某种数据库来在该线程和web服务器之间进行通信。如果您希望在设备和服务器重启之间保持数据的持久性,那么应该安装一个真正的数据库,如Postgres。如果没有,您可以简单地在应用程序内存中使用数组
在线程中,从串行端口读取并将值写入数据库/阵列
在REST端点中,输出最后的X值
然后,您的客户端可以对此端点进行轮询
(如果您真的想这样做,您可以使用更事件驱动的方法,但实现起来会更复杂)
问题是,从串行端口读取数据通常是以阻塞方式完成的。这意味着您不定期轮询,而是打开端口一次,然后一直读取,等待新数据的到来
您需要的是一个单独的thread。这是与普通web服务器并行运行的程序的一部分。然后,您需要某种数据库来在该线程和web服务器之间进行通信。如果您希望在设备和服务器重启之间保持数据的持久性,那么应该安装一个真正的数据库,如Postgres。如果没有,您可以简单地在应用程序内存中使用数组
在线程中,从串行端口读取并将值写入数据库/阵列
在REST端点中,输出最后的X值
然后,您的客户端可以对此端点进行轮询
(如果您真的想这样做,您可以使用更事件驱动的方法,但实现起来会更复杂)
相关问题 更多 >
编程相关推荐