python - 在 Windows 即服务上运行的无限循环 Python 脚本的最佳实践
问题描述
我有一个 python 脚本,它从 OPCDA 服务器读取数据,然后将其推送到 InfluxDB。
所以基本上它使用 OpenOPC 库连接到 OPCDA,使用 InfluxDB Python 客户端连接到 InfluxDB,然后启动每 5 秒运行一次的无限循环以读取数据并将数据推送到数据库。
我已经使用 NSSM 将脚本安装为服务。确保脚本 24/7 运行的最佳实践是什么?如何避免崩溃?我应该守护脚本吗?
先感谢您,
布尼罗斯
解决方案
我建议至少在脚本级别添加日志记录。您还可以使用来自 python 的自定义退出代码,以便 NSSM 知道报告失败。您的失败可能是在连接到您的服务时,即 netowrk down 或其他东西,因此您可以编写自定义异常以重新启动 NSSM。如果它每 5 秒运行一次,您可能很快就会知道。
确保可用性和避免崩溃是关于您的代码而不是基础设施,因此上述建议。
我相信使用 NSSM(用于调度等)比守护进程更好,因为您基本上是在脚本中添加 NSSM 的功能并可能添加更多可能失败的代码。
推荐阅读
- c# - c# IF 不能正常工作,程序在 void 中没有注意 IF
- python - 使用嵌套 json 测试 aws lambda python 函数
- dart - Flutter如何每次都不刷新页面?
- sql - 从没有时间戳的历史表中检索最后一个客户名称
- javascript - 我如何在没有循环的情况下从图表(Highcharts)中删除所有系列?
- html - 如何在不关闭当前模式的情况下打开新模式
- c# - 为 WCF 应用程序创建 Web UI
- python - 如何使用跟踪“实时”更新 matplotlib 图形图
- asp.net-mvc - 如何使用 nuget 包在 asp.net core 2.1 应用程序中实现 jquery 数据表
- python - ArithmeticProgression 无限运行