首页 > 解决方案 > 在 Windows 即服务上运行的无限循环 Python 脚本的最佳实践

问题描述

我有一个 python 脚本,它从 OPCDA 服务器读取数据,然后将其推送到 InfluxDB。

所以基本上它使用 OpenOPC 库连接到 OPCDA,使用 InfluxDB Python 客户端连接到 InfluxDB,然后启动每 5 秒运行一次的无限循环以读取数据并将数据推送到数据库。

我已经使用 NSSM 将脚本安装为服务。确保脚本 24/7 运行的最佳实践是什么?如何避免崩溃?我应该守护脚本吗?

先感谢您,

布尼罗斯

标签: pythonwindowsloopsservice

解决方案


我建议至少在脚本级别添加日志记录。您还可以使用来自 python 的自定义退出代码,以便 NSSM 知道报告失败。您的失败可能是在连接到您的服务时,即 netowrk down 或其他东西,因此您可以编写自定义异常以重新启动 NSSM。如果它每 5 秒运行一次,您可能很快就会知道。

确保可用性和避免崩溃是关于您的代码而不是基础设施,因此上述建议。

我相信使用 NSSM(用于调度等)比守护进程更好,因为您基本上是在脚本中添加 NSSM 的功能并可能添加更多可能失败的代码。


推荐阅读