我有关于如何最好地检查服务是否仍在运行的问题。检查服务是否挂起的最佳方法
先澄清一下。我拥有的服务是一个C#应用程序,可以从命令行运行,也可以作为Windows服务运行。该服务的功能是检查对远程第三方数据源的更改,并在将这些更改添加到我们自己的本地数据存储之前处理这些更改。
我希望能够识别何时服务因任何原因而停止运行,并在发生这种情况时尽可能自动地通知某人。无论服务是作为Windows服务运行还是从命令行运行,都需要这样做。
我已经考虑监视本地数据存储的变化并通知何时一段时间没有发生变化,但是这已证明有点太不一致,因为第三方的变化频率数据源是可变的,这意味着长期缺乏变化并不一定表明服务已停止工作,而可能是没有变化!
有没有关于如何去监控这个的建议?任何人都有类似的工作经验吗?
感谢,男
编辑1 只给的服务是如何工作的一个粗略的想法:第三方服务引发事件时,新的/更新的数据是可用的,所以我的服务坐着等待这些事件以提高和处理在募集事件中返回的数据。因此,这就是为什么识别何时“没有变化”而不是“服务崩溃”的棘手问题。
编辑2 我想我需要一个更清晰一点:这种监测的主要原因是通知用户有关或者与服务或与连接到第三方服务的潜在问题。服务本身是单线程的,并具有适当的异常处理和日志记录。机会是这个服务将在某个服务器上运行,所以如果这个服务有任何问题,它会停止更新我们的本地数据存储,无论出于什么原因服务需要通知某人。
你的服务是否有某种轮询循环? –
你能告诉我们你的服务实际上做了什么吗?我们可以帮助确定一个位置来定位某种形式的心跳。 – KingCronus