心跳和监控类库






1.55/5 (6投票s)
一个 C# 类库,用于向应用程序添加心跳和一个或多个监听器。
引言
应用程序心跳是一个周期性事件,只要应用程序“存活”就会被触发,一个或多个监听器可以监控该心跳并采取相应的行动。这个类库演示了一种实现方法,并允许通过应用程序配置添加监听器。(后者在概念上类似于 Trace
和 Debug
监听器的工作方式。)
背景
主要的类是静态的 Heartbeat
类,它有一个 System.Threading.Timer
,该定时器在第一次引用该类时初始化,并每秒触发一次“Beat”。然后,该 beat 会传递给每个监听器类(继承自基类 HeartbeatMonitorBase
),由它们记录或做出反应。
心跳监听器集合由类 HeartbeatCustomConfigSection
从应用程序配置文件中读取,该类继承自 .NET Framework 2.0 类 System.Configuration.ConfigurationSection
。在读取时,通过创建 System.Reflection.ConstructorInfo
并执行它来实例化 <heartbeats>
部分中列出的每个类。
使用代码
在应用程序启动时,调用 Monitoring.Heartbeat.ResetListensersFromConfig();
方法来启动心跳并根据应用程序配置文件创建监听器。
心跳监听器的应用程序配置应如下所示
<configSections>
<section name ="heartbeatSettings"
type="Monitoring.HeartbeatCustomConfigSection, Monitoring,
Version=1.0.0.0,Culture=neutral,PublicKeyToken=null"/>
</configSections>
并且,将这样添加单个监听器
<heartbeatSettings>
<heartbeats>
<clear />
<add Name="HeartbeatTrace"
Type="Monitoring.TraceHeartbeatMonitor, Monitoring,
Version=1.0.0.0,Culture=neutral,PublicKeyToken=null" />
<add Name="HeartbeatTraceTwo"
Type="Monitoring.TraceHeartbeatMonitor, Monitoring,
Version=1.0.0.0,Culture=neutral,PublicKeyToken=null"
InitData="foo" />
</heartbeats>
</heartbeatSettings>
历史
- 2008-08-11 - 创建。