背景

平常我们系统一般会涉及到一些使用第三方组件的情况,那么我们如何去监测,第一时间知道组件是否可用。或者是组件没报错,但是没法返回我们想要的数据。

问题窥探

一般做法是在调用的时候,如果是异常,就发出对应的报警,这是解决的方式,但是也会有对应的问题,就是这种方式属于被动形式的报警,就是只有当用户操作触发的时候才知道,那么我们怎么主动的去知道组件是否可用,做对应的监控检查呢。我们采用的方式是使用定时任务,去执行健康检查。及时的去获取信息。

主要代码实现

 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;}}
}

巧用定时任务监控第三方组件是否正常相关推荐

  1. 巧用 Prometheus 监控 Kubernetes 集群所有组件的证书

    KubeSphere 虽然提供了运维友好的向导式操作界面,简化了 Kubernetes 的运维操作,但它还是建立在底层 Kubernetes 之上的,Kubernetes 默认的证书有效期都是一年,即 ...

  2. 导入第三方组件_大型 web 应用公共组件架构是如何来的?

    来源:腾讯AlloyTeam https://mp.weixin.qq.com/s/gVUJRF_nLHOT_iXDXQ8F-w 腾讯文档公共组件历史包袱 1. 架构问题--开发层面 腾讯文档管理的公 ...

  3. 一文了解提权:溢出提权和第三方组件提权

    前言 对提权做个归纳 提权一般分为两种: 溢出提权 第三方组件提权 一.溢出提权 溢出提权就是利用系统漏洞进行提权 远程溢出:攻击者只要与服务器连接,然后根据漏洞使用响应的exp即可,如著名的MS-0 ...

  4. iOS 项目中用到的一些开源库和第三方组件

    iOS 项目中用到的一些 iOS 开源库和第三方组件 分享一下我目前所在公司 iOS 项目中用到的一些 iOS 开源库和第三方组件, 感谢开源, 减少了我们的劳动力, 节约了我们大量的时间, 让我们有 ...

  5. React Native 项目常用第三方组件汇总

    React Native 项目常用第三方组件汇总 https://www.jianshu.com/p/d9cd9a868764?utm_campaign=maleskine&utm_conte ...

  6. android多线程下载原理,安卓多线程断点续传下载功能(靠谱第三方组件,原理demo)...

    一,原生的DownloadManager 从Android 2.3(API level 9)开始,Android以Service的方式提供了全局的DownloadManager来系统级地优化处理长时间 ...

  7. 如何在Eclipse中查看Android源码或者第三方组件包源码

    文章出处:http://blog.csdn.net/cjjky/article/details/6535426 在学习过程中如果经常阅读源码,理解程度会比较深,学习效率也会比较高,那么如何方便快捷的阅 ...

  8. Delphi第三方组件安装DCU.PAS.DPK.BPL.ActiveX控件

    不是由BORLAND提供的组件叫第三方组件: 安装方法: 南山古桃(nsgtao)首先提醒一下:最好把要安装的文件先复制到Delphi安装目录的Lib目录下再执行下面的操作! 就目前常见的各种形式的组 ...

  9. Android 项目中常用到的第三方组件

    项目中常用到的第三方组件 1 社会化分享 ShareSDK-Core-2.5.9.jar ShareSDK-QQ-2.5.9.jar ShareSDK-QZone-2.5.9.jar ShareSDK ...

最新文章

  1. android锁屏显示应用程序,今日应用:微软又给 Android 做了一款锁屏应用
  2. 从Grunt测试Grunt插件
  3. 职场见闻录(01) - 怎样回答这两个问题?
  4. 支持向量机c++实现
  5. Servlet中forward和redirect的区别
  6. matlab多种图像边缘检测方法,[转载]Matlab多种图像边缘检测方法
  7. 黑盒测试的常见测试方法
  8. 微信网页开发 /JS-SDK说明文档
  9. 持久化内存挑战PERSISTENT MEMORY CHALLENGES
  10. 【10.16 胡测】Day4 第四波胡策题
  11. 纯音乐自制吉他及钢琴简谱合集
  12. python实现真正的多线程
  13. Kotlin真的值得学习吗?
  14. 音频视频播放无法拖动快进
  15. 嵌入式主板开发设计需要考虑哪些因素?
  16. 2.1.4 奇偶校验码
  17. RISC-V应用于高性能处理器的可能性
  18. 电子计算机与多媒体课件背景,《多媒体CAI课件制作》教学课件(全套).ppt
  19. 服务器芯片如何开启睿频,服务器器主板打开睿频
  20. 【笔记】《算法设计与分析(第三版)》-王晓东著-第3章-动态规划

热门文章

  1. Leetcode#832. Flipping an Image(翻转图像)
  2. mysql中查询一个字段属于哪一个数据库中的哪一个表的方式
  3. FPGA浮点数定点化
  4. Ruby:字符集和编码学习总结
  5. 【转】SQL SERVER 存储过程学习笔记
  6. SQL中合并多行记录的方法总汇
  7. js滚动条滚动到指定元素
  8. Kotlin 基础 - 数据类型
  9. PropertySource和ConfigurationProperties
  10. Netty 4.x – ByteBuf