c# - 哪个是监视多个 Windows 服务的最佳方法 - 计时器或线程
问题描述
我有一个监控系统中多个 Windows 服务的项目。这个项目所做的是监视所有这些服务,无论它们是否正常工作。如果他们停止工作,则会向相关人员发送一封邮件。
为了管理这一切,多个服务有多个计时器。就像是 -
System.Timers.Timer ServiceOneTimer;
System.Timers.Timer ServiceTwoTimer;
具有特定间隔的计时器,在他们的 Elapsed 事件中检查该特定服务的状态 -
private void ServiceOneTimer_Elapsed(object sender, ElapsedEventArgs e)
{
ServiceOneTimer.Stop();
bool isRunning = CheckServiceOne();
if (!isRunning)
SendMail("Sevice 1 has been stopped");
}
我想知道是否有更好的方法来实现这一目标?因为将来可能有许多服务需要监控。在这种情况下使用计时器是否可取?还是Thread
应该使用其他类似的东西?
解决方案
推荐阅读
- asp.net-mvc - 制作不属于实体/类的确认字段
- java - Spring boot slf4j/log4j 禁用每日 RollingFilePolicy
- excel - VB 脚本使用另一个 Excel 文件中的数据更新工作簿中的链接
- r - R函数找出3个变量中的哪一个与另一个值最相关?
- c++ - C ++模板成员初始化:使用右值进行移动构造,但使用左值进行引用
- python - sqlalchemy 限制从第一次连接返回的结果,并让后续连接只连接有限的结果
- angular - Angular (6/7/8) - 在等待 window.location.assign 中的内容加载时显示微调器
- tensorflow-serving - 如何使模型为带有 base64 编码图像的 TensorFlow Serving REST 接口做好准备?
- java - 使用 JUnit 和 Mockito 对 DAO 类进行单元测试
- reactjs - ReactJS:从 api print 获取不仅仅是一次