我正在创建一个 Windows 服务,它检查文件夹、其他服务等。如果其中任何一个出现故障,则发送警报短信。但是,我对在给定时间段内(从晚上 23 点到早上 7 点)收到警报消息不感兴趣。
该服务是通过 XML 配置文件设置的,可以在其中预定义这段静默期。
我需要一种方法来检查服务是否在一段时间内运行,因此它将暂停短信。该服务每 5 分钟检查一次此期间,因此在这些检查期间,我无法弄清楚如何应对日期的变化。
详细说明:
我当前的代码:
bool silende = false;
DateTime silenceModeFrom = new DateTime(
DateTime.Now.Year,
DateTime.Now.Month,
DateTime.Now.Day,
int.Parse(doc.XPathSelectElement(
"//SurveilanceServiceConfig/SilenceModeTimeFrom").Value),
00,
00);
DateTime silenceModeTo = silenceModeFrom.AddHours(
int.Parse(doc.XPathSelectElement(
"//SurveilanceServiceConfig/SilenceModeTimeHours").Value));
if (DateTime.Now > silenceModeFrom && DateTime.Now < silenceModeTo)
{
silence = true;
}
在此代码中,如果在 24.00 之前进行检查,但不是在DateTime.Now.Day
等之后进行,则检查将在第二天进行。所以理论上,代码只验证静默期为每天 23.00 到 24.00。