我有關於如何最好地檢查服務是否仍在運行的問題。檢查服務是否掛起的最佳方法
先澄清一下。我擁有的服務是一個C#應用程序,可以從命令行運行,也可以作爲Windows服務運行。該服務的功能是檢查對遠程第三方數據源的更改,並在將這些更改添加到我們自己的本地數據存儲之前處理這些更改。
我希望能夠識別何時服務因任何原因而停止運行,並在發生這種情況時儘可能自動地通知某人。無論服務是作爲Windows服務運行還是從命令行運行,都需要這樣做。
我已經考慮監視本地數據存儲的變化並通知何時一段時間沒有發生變化,但是這已證明有點太不一致,因爲第三方的變化頻率數據源是可變的,這意味着長期缺乏變化並不一定表明服務已停止工作,而可能是沒有變化!
有沒有關於如何去監控這個的建議?任何人都有類似的工作經驗嗎?
感謝,男
編輯1 只給的服務是如何工作的一個粗略的想法:第三方服務引發事件時,新的/更新的數據是可用的,所以我的服務坐着等待這些事件以提高和處理在募集事件中返回的數據。因此,這就是爲什麼識別何時「沒有變化」而不是「服務崩潰」的棘手問題。
編輯2 我想我需要一個更清晰一點:這種監測的主要原因是通知用戶有關或者與服務或與連接到第三方服務的潛在問題。服務本身是單線程的,並具有適當的異常處理和日誌記錄。機會是這個服務將在某個服務器上運行,所以如果這個服務有任何問題,它會停止更新我們的本地數據存儲,無論出於什麼原因服務需要通知某人。
你的服務是否有某種輪詢循環? –
你能告訴我們你的服務實際上做了什麼嗎?我們可以幫助確定一個位置來定位某種形式的心跳。 – KingCronus