gpt4 book ai didi

c# - 如何验证您的应用程序是否全天运行?

转载 作者:可可西里 更新时间:2023-11-01 09:47:35 24 4
gpt4 key购买 nike

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

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

有什么想法可以确保该应用在一天中一直运行而不会出现重大中断吗?

  • 即使应用程序/Windows 崩溃并重新启动,解决方案也应该有效
  • 有可能长时间没有感知数据,即使app正在运行也是如此

最初的想法

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

最佳答案

持久化以下两个变量(在数据库、文件中,任何你想要的地方):

  1. 一个整数。这将是您的最大离线秒数
  2. 时间戳。这将是你的最后一次心跳这需要是 UTC,以使其不受 DST 影响。

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

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

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

关于c# - 如何验证您的应用程序是否全天运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32901111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com