高端t恤定制网站,工业企业解决方案,网站如果直接点击拨打电话,成都91获客营销中心背景平常我们系统一般会涉及到一些使用第三方组件的情况#xff0c;那么我们如何去监测#xff0c;第一时间知道组件是否可用。或者是组件没报错#xff0c;但是没法返回我们想要的数据。问题窥探一般做法是在调用的时候#xff0c;如果是异常#xff0c;就发出对应的报警… 背景平常我们系统一般会涉及到一些使用第三方组件的情况那么我们如何去监测第一时间知道组件是否可用。或者是组件没报错但是没法返回我们想要的数据。问题窥探一般做法是在调用的时候如果是异常就发出对应的报警这是解决的方式但是也会有对应的问题就是这种方式属于被动形式的报警就是只有当用户操作触发的时候才知道那么我们怎么主动的去知道组件是否可用做对应的监控检查呢。我们采用的方式是使用定时任务去执行健康检查。及时的去获取信息。主要代码实现 using NLog;
using System;
using System.Collections.Generic;namespace ResearchManager.WinService.Jobs.Monitor
{public abstract class BaseMonitorJob : BaseQuartzJob{protected abstract Liststring DoMonitorJob();protected override void DoJob(){Liststring errorMsgList null;try{errorMsgList DoMonitorJob();}catch (Exception ex){if (errorMsgList null){errorMsgList new Liststring();}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/// 商品调研分析 监测/// /summarypublic class MonitorProductResearchStatisticJob : BaseMonitorJob{protected override Liststring DoMonitorJob(){IMonitorService monitorService AutofacConfig.Instance.ResolveIMonitorService();Liststring errorMsgList new Liststring();monitorService.TestProductResearchStatistic(ref errorMsgList);return errorMsgList;}}
}