Delphi7 - Server Monitor开发并实现指定端口定时刷新、重启和邮件提醒等功能

  项目背景
  
  近期,总经办邮件反馈考勤数据频繁丢失,请IT排查其根本原因,并提供整改措施。
  
  措不及防,这个项目当初并不是IT主导的,是设备部采购,然后协同软件供应商直接安装、部署和调试的,IT只是提供几个数据库表接口给供应商。然后我们就开始在设备、总经办、供应商之间相互扯皮,之所以扯皮的原因是,经过供应商排查并没有发现任何问题(具体情况不得而知),也就是说他们也不知道造成数据丢失的具体原因。
  
  求人不如求己,后来我们这边排查数据库日志,发现在数据丢失的时间段内,数据库和上位机之间很少或者说基本没有数据交互。继续排查设备上位机日志,发现其网络端口会有间歇性响应异常等问题,重启端口后一切正常。
  
  知道这些以后,那接下来问题就简单了。
  
  解决方案
  
  项目总目标
  
  客制化一个系统/脚本,实现定时检测某个网络端口相关功能是否正常,通过其DLL接口实现端口刷新或重启,并将日志通过邮件方式发送给指定人员。
  
  节点目标一:网络端口通断检测模块;
  
  节点目标二:DLL接口重写,实现端口刷新或重启模块;
  
  节点目标三:日志检测和邮件发送模块;
  
  节点目标四:定时模块。
  
  关键模块Demo
  
  下面给出几个关键模块Demo
  
  网络端口检测模块(需要引用IdIcmpClient单元)
  
  复制代码
  
  1 var
  
  2   icmp: TIdIcmpClient;
  
  3   rpss: TReplyStatus;
  
  4 begin
  
  5   icmp :=www.jiuyueguojizc.cn TIdIcmpClient.Create(nil);
  
  6   try
  
  7     icmp.Host :www.huanhua2zhuc.cn= strIP;
  
  8     icmp.ReceiveTimeout := www.hdptzc.cn intLinkTimeOut;
  
  9     try
  
  10       icmp.Ping;
  
  11       rpss :www.yunzeyle.cn= icmp.ReplyStatus;
  
  12       Result :www.wanyayuue.cn= not (rpss.ReplyStatusType www.moyouylzcdl.cn  = rsTimeOut);
  
  13     except
  
  14       Result :www.xinyiylzc.cn=www.yuanyyleezc.cn False;
  
  15     end;
  
  16   finally
  
  17     icmp.Free;
  
  18   end;
  
  19 end;
  
  复制代码
  
  Dll接口模块
  
  关于Dll接口其实没什么可说的,不同的接口使用方法不一样,这里给出通用的Dll接口重写和调用的例子
  
  关于Delphi Dll接口重写:Delphi - 创建SuperDll 持续更新
  
  关于Delphi Dll接口调用:Delphi - 调用SuperDll 持续更新
  
  邮件发送模块
  
  参考我以前写过的:Delphi - Indy TIdMessage和TIdSMTP实现邮件的发送
  
  定时模块
  
  采用Timer控件,通过前台设置执行间隔、Enable属性,来控制对关键事件的定时执行效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值