如何验证您的应用程序整天都在运行

本文关键字:应用程序 运行 何验证 验证 | 更新日期: 2023-09-27 18:15:50

我写了一个windows c#应用程序,它全天候运行,收集传感数据,并将其存储在数据库中。

每天晚上,我对前一天的数据运行一些算法。只有当应用程序在前一天一整天都处于活动状态而没有重大中断(即中断超过5分钟将使当天的结果无效)时,结果才有用。

任何想法如何确保应用程序在一天中一直运行而没有重大中断?

  • 解决方案应该工作,即使应用程序/windows崩溃并重新启动
  • 有可能在很长一段时间没有传感数据,即使应用程序正在运行

第一想法

  • 每分钟增加一天的数据库计数器。如果计数器达到最大值1440减去容差(60分钟× 24小时),则应用程序一整天都在运行。看起来很复杂,每天都需要一个计数器。从夏天到冬天的时间变化会让人头疼…

如何验证您的应用程序整天都在运行

保存以下两个变量(在数据库中、文件中,无论在哪里):

  1. 整数。这将是您的最大离线秒数
  2. 时间戳
  3. 。这将是你的最后一次心跳。这需要UTC,以使其防dst

让您的应用程序每隔几秒执行以下操作:

  1. 读取最后一个时间戳
  2. 与当前(UTC)时间戳比较。
  3. 如果差值大于整数,则更新整数
  4. 用当前UTC时间更新时间戳

每天手动检查时间戳。当您这样做时,将其重置为零。

这取决于你想要发生什么。这只是我脑子里的一些快速的想法。

如果你想重新启动应用程序-你可以创建一个Heartbeat窗口服务,旨在确保进程正在运行。如果它没有运行,你可以让它重新启动进程。

如果您只是需要/想要验证数据。让应用程序向数据库报告运行状况检查,并在整个过程中将其用作"是否在此"。