Overview Scheduling has been implemented at the individual heartbeat level. This will allow heartbeat execution times to be custom tailored to a schedule that best fits the given heartbeat type and application. The end goal is to check various heartbeats only when deemed appropriate thus reducing the amount of "false positives" generated which dilutes the value of heartbeat. This enables the application owner(s) to define schedules to control when heartbeats should monitor their application. Use Cases
The Heartbeat assembly node now has an optional tag Schedule: <HeartbeatAssembly> <Label>File System Health Status</Label> <Name>FileSystemHealthObject</Name> <!--Schedule is optional. If a schedule is specified hearbeat will enforce scheduling. If unspecified, heartbeat will execute--> <Schedule>Main Schedule</Schedule> <NameSpace>qbo.Heartbeat.Plugins</NameSpace> <AssemblyFile>d:\websites\services.quandis.com\bin\qbo.Heartbeat.Plugins.dll</AssemblyFile> <CacheDuration>5</CacheDuration> </HeartbeatAssembly> If specified, this heartbeat will only execute if scheduling conditions are met. Within Heartbeat.config, a Schedules section can be added with multiple schedules. The heartbeat Schedule value must match the EventSchedule value for the schedules to bind: <Schedules> <EventScheduleObject> <EventSchedule>Main Schedule</EventSchedule> <!-- Use Provisions to specify run dates and times. If there is a requirement to exclude a time frame in a given day, use the Exclusions to block out that timeframe. --> <Provisions> <ScheduleProvision> <DayOfWeek>Monday</DayOfWeek> <StartTime>00:00:00</StartTime> <EndTime>23:59:59</EndTime> </ScheduleProvision> <ScheduleProvision> <DayOfWeek>Tuesday</DayOfWeek> <StartTime>05:00:00</StartTime> <EndTime>20:00:00</EndTime> </ScheduleProvision> <ScheduleProvision> <DayOfWeek>Wednesday</DayOfWeek> <StartTime>05:00:00</StartTime> <EndTime>20:00:00</EndTime> </ScheduleProvision> <ScheduleProvision> <DayOfWeek>Thursday</DayOfWeek> <StartTime>05:00:00</StartTime> <EndTime>20:00:00</EndTime> </ScheduleProvision> <ScheduleProvision> <DayOfWeek>Friday</DayOfWeek> <StartTime>05:00:00</StartTime> <EndTime>20:00:00</EndTime> </ScheduleProvision> <ScheduleProvision> <DayOfWeek>Saturday</DayOfWeek> <StartTime>05:00:00</StartTime> <EndTime>20:00:00</EndTime> </ScheduleProvision> <ScheduleProvision> <DayOfWeek>Sunday</DayOfWeek> <StartTime>05:00:00</StartTime> <EndTime>20:00:00</EndTime> </ScheduleProvision> </Provisions> <Exclusions> <!-- Multiple schedule exclusions can be added to a given day. It's assumed the Provision covers the entire run time spectrum. If one of the Exclusions are matched, the schedule will not run --> <ScheduleExclusion> <DayOfWeek>Monday</DayOfWeek> <StartTime>00:30:00</StartTime> <EndTime>03:00:00</EndTime> </ScheduleExclusion> </Exclusions> </EventScheduleObject> </Schedules> The Schedule node can be omitted from the HeartbeatAssembly node for reverse compatibility. The heartbeat will always execute when the service is invoked by support. |
Configuration >