65.9K
CodeProject 正在变化。 阅读更多。
Home

心跳和监控类库

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.55/5 (6投票s)

2008 年 8 月 11 日

CPOL

1分钟阅读

viewsIcon

44812

downloadIcon

784

一个 C# 类库,用于向应用程序添加心跳和一个或多个监听器。

引言

应用程序心跳是一个周期性事件,只要应用程序“存活”就会被触发,一个或多个监听器可以监控该心跳并采取相应的行动。这个类库演示了一种实现方法,并允许通过应用程序配置添加监听器。(后者在概念上类似于 TraceDebug 监听器的工作方式。)

背景

主要的类是静态的 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 - 创建。
© . All rights reserved.