公司的一个wap网站使用tomact服务,但最近运行总是崩溃,有时候会在半夜,解决起来实在麻烦,所以捡起以前的delphi,写了个工具。其中思路是:
网站里写了一个jsp网页,啥也不做,用来被检测网站是否正常。使用idhttp访问,根据返回码来判断网站是否正常。不正常则重启。
故有以下几个关键:
jsp网页:
code
-------------------------------------------------------------------------
<%
String S="Rany.ok";
out.println(S.length());
%>
-------------------------------------------------------------------------
建立delphi工程,放一个timer检测。
---------------------函数-检测是否网站状态正常----------------------------------
function gethttptrue(ihttp: string):Boolean;
begin
try
idhtpwap.Get(ihttp);
if not (idhtpwap.ResponseCode > 299) then
Result:= True;
except
Result:= False;
end;
end;
--------------------------------------------------------------------
procedure TFrmMain.tmrChildTimer(Sender: TObject);
var
iHandlewin: THandle;
begin
try
RzTrayIconry.Icons:= ilDo;
tmrChild.Enabled:= False;
DelayTime(2000);
if not (gethttptrue(SetIniFile.ReadString('Setinfo','wap',''))) then
begin
//关键代码
SetCurrentDir(ExtractFilePath(Trim(edtPath.Text))); //设置默认tomcat路径
ShellExecute(0,PChar('open'),PChar(Trim(edtPath.Text)),'run',nil,SW_SHOWNORMAL); //注意一定要带“run”参数
DelayTime(2000);
//获取开启程序句柄以便判断是否成功重启
iHandlewin:= FindWindow(nil,'Tomcat');
if iHandlewin>0 then
begin
//记录日志写入logWrite();
DataModuleUnit.Sendmsg(SetIniFile.ReadString('Smsdata','spname',''),SetIniFile.ReadString('Smsdata','phonelist',''),'1');
WriteLog(IntToCDate(GetDate)+' '+inttotime(GetTime)+'启动【'+Trim(edtPath.Text)+'】成功; Write By Ranyang.');
end
else
begin
//开启失败,记录日志写入logWrite();
WriteLog(IntToCDate(GetDate)+' '+inttotime(GetTime)+'启动【'+Trim(edtPath.Text)+'】失败; Write By Ranyang.');
DataModuleUnit.Sendmsg(SetIniFile.ReadString('Smsdata','spname',''),SetIniFile.ReadString('Smsdata','phonelist',''),'0');
end;
end;
//再次启动子监控,
tmrChild.Enabled:= True;
except
on E: Exception do
begin
RzTrayIconry.Icons:= ilError;
//开启失败,记录日志写入logWrite(E.Message);
WriteLog(IntToCDate(GetDate)+' '+inttotime(GetTime)+'启动【'+Trim(edtPath.Text)+'】失败,Error:'+E.Message+'; Write By Ranyang.');
//再次启动子监控,
tmrChild.Enabled:= True;
Application.Minimize;
end;
end;
end;
----------------------------------------------------------------------------
博主为了解决公司wap网站频繁崩溃的问题,利用Delphi编写了一个监控管理工具。该工具通过定时检测一个仅返回状态码的jsp页面来判断网站是否正常,并根据返回码决定是否重启Tomcat服务。如果服务未成功重启,工具会记录日志并发送短信通知。
9549

被折叠的 条评论
为什么被折叠?



