巧用定时任务监控第三方组件是否正常
生活随笔
收集整理的這篇文章主要介紹了
巧用定时任务监控第三方组件是否正常
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
背景
平常我們系統一般會涉及到一些使用第三方組件的情況,那么我們如何去監測,第一時間知道組件是否可用。或者是組件沒報錯,但是沒法返回我們想要的數據。
問題窺探
一般做法是在調用的時候,如果是異常,就發出對應的報警,這是解決的方式,但是也會有對應的問題,就是這種方式屬于被動形式的報警,就是只有當用戶操作觸發的時候才知道,那么我們怎么主動的去知道組件是否可用,做對應的監控檢查呢。我們采用的方式是使用定時任務,去執行健康檢查。及時的去獲取信息。
主要代碼實現
?using?NLog; using?System; using?System.Collections.Generic;namespace?ResearchManager.WinService.Jobs.Monitor {public?abstract?class?BaseMonitorJob?:?BaseQuartzJob{protected?abstract?List<string>?DoMonitorJob();protected?override?void?DoJob(){List<string>?errorMsgList?=?null;try{errorMsgList?=?DoMonitorJob();}catch?(Exception?ex){if?(errorMsgList?==?null){errorMsgList?=?new?List<string>();}errorMsgList.Add(ex.ToString());}if?(errorMsgList?!=?null){string?logMsg?=?string.Format("{0},?errorMsgList={1}",?GetType().Name,?string.Join("\n",?errorMsgList));Common.Log(logMsg);if?(errorMsgList.Count?>?0){Common.Log(LogLevel.Error,?logMsg);string?subject?=?"BigTracker?資料監控錯誤通知";string?content?=?string.Join("<br/>",?errorMsgList);Common.ErrorHandle(subject,?content);}}}} } ?using?Autofac; using?ResearchManager.Interface.Service; using?System.Collections.Generic;namespace?ResearchManager.WinService.Jobs.Monitor {///?<summary>///?商品調研分析?監測///?</summary>public?class?MonitorProductResearchStatisticJob?:?BaseMonitorJob{protected?override?List<string>?DoMonitorJob(){IMonitorService?monitorService?=?AutofacConfig.Instance.Resolve<IMonitorService>();List<string>?errorMsgList?=?new?List<string>();monitorService.TestProductResearchStatistic(ref?errorMsgList);return?errorMsgList;}} }總結
以上是生活随笔為你收集整理的巧用定时任务监控第三方组件是否正常的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让Dapper支持读写分离
- 下一篇: EFCore之增删改查