我在服务器上有一个长时间运行的 Python 程序,它已经在一个串行端口上侦听消息并将它们转发到另一个串行端口。
我需要做什么才能让该程序接受来自网络服务器的数据(最终从笔记本电脑上的网络浏览器获取数据)?
到目前为止我看到的选项是:
flask() “ 与服务器上运行的 python 程序通信”服务器上的解决方案似乎对我不起作用,因为(我可能做错了)长时间运行的 Python 程序似乎无法获取端口 80,我猜测是因为 Web 服务器已经在端口 80 上运行(服务于其他页面)。
有一个将数据写入文件的 CGI 脚本,而长时间运行的脚本会从该文件中读取数据。我有点不愿意在闪存磨损可能是一个问题的系统上执行此操作。
不知何故(?)将长时间运行的脚本转换为 FastCGI 脚本,其中包括它曾经做过的所有事情以及从 Web 服务器接受数据的新内容。
不知何故(?)将长时间运行的脚本转换为 WSGI 脚本,其中包括它曾经做过的所有事情以及从 Web 服务器接受数据的新内容。
编写一个简短的 web 脚本,让 web 服务器启动,它使用 asynchat / asyncore / sockets / twisted与一个长时间运行的脚本进行通信,这似乎是为两台不同计算机之间的通信而设计的,因此在长时间之间交谈时似乎有点过分了。运行 Python 脚本和运行在同一台服务器上的 Web 服务器(可能在它们之间有一个短时间 CGI 脚本或 FastCGI 脚本)。
也许还有其他选择?
Web 服务器是否有标准的“pythonic”方式将数据传递给已经启动并运行的 Python 程序?(而不是更常见的 Web 服务器启动Python 程序并将数据传递给新启动的程序的情况)。
(我怀疑不相关的细节:我的服务器在 Beaglebone Black 上运行的 Ubuntu Linux 上运行 Lighttpd)。
(也许这个问题应该移到https://softwareengineering.stackexchange.com/?)