Delphi7 - Server Monitor开发并实现指定端口定时刷新、重启和邮件提醒等功能
2021-01-25 18:15
标签:str 相关 color 情况 功能 image ffffff phi 数据 近期,总经办邮件反馈考勤数据频繁丢失,请IT排查其根本原因,并提供整改措施。 措不及防,这个项目当初并不是IT主导的,是设备部采购,然后协同软件供应商直接安装、部署和调试的,IT只是提供几个数据库表接口给供应商。然后我们就开始在设备、总经办、供应商之间相互扯皮,之所以扯皮的原因是,经过供应商排查并没有发现任何问题(具体情况不得而知),也就是说他们也不知道造成数据丢失的具体原因。 求人不如求己,后来我们这边排查数据库日志,发现在数据丢失的时间段内,数据库和上位机之间很少或者说基本没有数据交互。继续排查设备上位机日志,发现其网络端口会有间歇性响应异常等问题,重启端口后一切正常。 知道这些以后,那接下来问题就简单了。 客制化一个系统/脚本,实现定时检测某个网络端口相关功能是否正常,通过其DLL接口实现端口刷新或重启,并将日志通过邮件方式发送给指定人员。 下面给出几个关键模块Demo 网络端口检测模块(需要引用IdIcmpClient单元) Dll接口模块 关于Dll接口其实没什么可说的,不同的接口使用方法不一样,这里给出通用的Dll接口重写和调用的例子 关于Delphi Dll接口重写:Delphi - 创建SuperDll 持续更新 关于Delphi Dll接口调用:Delphi - 调用SuperDll 持续更新 邮件发送模块 参考我以前写过的:Delphi - Indy TIdMessage和TIdSMTP实现邮件的发送 定时模块 采用Timer控件,通过前台设置执行间隔、Enable属性,来控制对关键事件的定时执行效果 页面布局 运行效果 作者:Jeremy.Wu Delphi7 - Server Monitor开发并实现指定端口定时刷新、重启和邮件提醒等功能 标签:str 相关 color 情况 功能 image ffffff phi 数据 原文地址:https://www.cnblogs.com/jeremywucnblog/p/12010439.html项目背景
解决方案
项目总目标
节点目标一:网络端口通断检测模块;
节点目标二:DLL接口重写,实现端口刷新或重启模块;
节点目标三:日志检测和邮件发送模块;
节点目标四:定时模块。
关键模块Demo
1 var
2 icmp: TIdIcmpClient;
3 rpss: TReplyStatus;
4 begin
5 icmp := TIdIcmpClient.Create(nil);
6 try
7 icmp.Host := strIP;
8 icmp.ReceiveTimeout := intLinkTimeOut;
9 try
10 icmp.Ping;
11 rpss := icmp.ReplyStatus;
12 Result := not (rpss.ReplyStatusType = rsTimeOut);
13 except
14 Result := False;
15 end;
16 finally
17 icmp.Free;
18 end;
19 end;
测试Demo运行效果
出处:https://www.cnblogs.com/jeremywucnblog/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
文章标题:Delphi7 - Server Monitor开发并实现指定端口定时刷新、重启和邮件提醒等功能
文章链接:http://soscw.com/index.php/essay/46915.html