我有一个关于如何最好地检查服务是否仍在运行的问题。
首先需要澄清一下,我拥有的服务是一个C#应用程序,可以从命令行运行,也可以作为Windows服务运行。该服务的功能是检查远程第三方数据源的更改,并在将其添加到我们自己的本地数据存储之前处理这些更改。
我希望能够识别出服务由于任何原因停止运行,并尽可能自动地通知某个人。无论服务是作为Windows服务还是从命令行运行,都需要发生这种情况。
我已经考虑过监视本地数据存储以进行更改并在一定时间内未发生更改时通知,但是这被证明有点不一致,因为第三方数据源的更改频率是可变的,这意味着长时间缺少更改不一定表示服务已停止工作,可能只是没有更改!
有没有关于如何监视此内容的建议?有没有任何类似的经验?
谢谢,M
编辑1 只是大致介绍一下服务的工作方式:当新/更新数据可用时,第三方服务会引发事件,因此我的服务等待这些事件被引发并处理引发事件中返回的数据。因此,很难确定“没有更改”而不是“服务已崩溃”。
编辑2 我认为我需要更清楚一些:监视的主要原因是通知用户可能存在的服务问题或与第三方服务的连接问题。该服务本身是单线程的,并具有适当的异常处理和日志记录。很有可能这个服务将在某个服务器上运行,因此如果服务出现任何问题并且由于任何原因停止更新我们的本地数据存储,则服务需要通知某个人。
首先需要澄清一下,我拥有的服务是一个C#应用程序,可以从命令行运行,也可以作为Windows服务运行。该服务的功能是检查远程第三方数据源的更改,并在将其添加到我们自己的本地数据存储之前处理这些更改。
我希望能够识别出服务由于任何原因停止运行,并尽可能自动地通知某个人。无论服务是作为Windows服务还是从命令行运行,都需要发生这种情况。
我已经考虑过监视本地数据存储以进行更改并在一定时间内未发生更改时通知,但是这被证明有点不一致,因为第三方数据源的更改频率是可变的,这意味着长时间缺少更改不一定表示服务已停止工作,可能只是没有更改!
有没有关于如何监视此内容的建议?有没有任何类似的经验?
谢谢,M
编辑1 只是大致介绍一下服务的工作方式:当新/更新数据可用时,第三方服务会引发事件,因此我的服务等待这些事件被引发并处理引发事件中返回的数据。因此,很难确定“没有更改”而不是“服务已崩溃”。
编辑2 我认为我需要更清楚一些:监视的主要原因是通知用户可能存在的服务问题或与第三方服务的连接问题。该服务本身是单线程的,并具有适当的异常处理和日志记录。很有可能这个服务将在某个服务器上运行,因此如果服务出现任何问题并且由于任何原因停止更新我们的本地数据存储,则服务需要通知某个人。