公司里不知哪个“专家”做的项目,总把tomcat搞崩溃,于是请我出山解决问题。我这个庸医自然根据头痛医头的原则,想到解决方法就是监控某个网页,死了就让tomcat启动。有了这个妙方,习惯了拿来主义的我自然先google一番,找到一个web monitor的工具,玩了一下感觉很差劲,还要注册。找个破解法自然不难,但天朝的环境木马横行,随时“领也”。真是岂有此理,这样一个小破玩意还要收费。我DIY还不行吗。
于是,2天之后,一个经过优雅设计的工具浮出水面。下面是这个工具的配置文件,一目了然:
配置好后,直接运行start.bat,以后你就不用半夜起来重启tomcat了。当然,这个工具的功能远不止重启tomcat,好好领会。下面是这个程序的类图:
[img]http://yangguo.iteye.com/upload/picture/pic/80324/9069d7c7-a421-3dd5-a0b9-1d83ae522801.png[/img]
程序打包下载。
补充:有人以为配置是固定的,其实不然。上面只是一个例子。
主要设计思想是:一个任务有一个动作和多个处理器,任务,动作,处理器都可以不断扩展,自由搭配。
例如扩展一个定时任务<OnTimeTask>,动作是关闭某个进程<KillProcess>,处理器是发送手机短信<SendPhoneMsg>。
经过扩展后,更一般的配置文件如下:
于是,2天之后,一个经过优雅设计的工具浮出水面。下面是这个工具的配置文件,一目了然:
<?xml version="1.0" encoding="UTF-8"?>
<TaskManager>
<!-- 周期性任务 -->
<ScheduleTask >
<!-- 时间间隔,单位为毫秒 -->
<interval>20000</interval>
<!-- URL监视器 -->
<Monitor>
<url>http://baidu.com</url>
</Monitor>
<!-- 监控失败处理队列 -->
<!-- 运行程序 -->
<RunProgram>
<path>E:\qq.exe</path>
</RunProgram>
</ScheduleTask>
<ScheduleTask >
<interval>30000</interval>
<Monitor>
<url>http://localhost</url>
</Monitor>
<!-- 监控失败处理队列 ,多个动作 START-->
<RunProgram>
<path>E:\cluster\tomcat7\bin\startup.bat</path>
</RunProgram>
<!-- 发送邮件 -->
<SendMail>
<receiver>holdmydream@126.com</receiver>
<subject>杯具啊</subject>
<content>你的程序已经杯具。不必太伤心,神马都是浮云。</content>
</SendMail>
<SendMail>
<receiver>javaeye2010@126.com</receiver>
<subject>杯具啊</subject>
<content>你的程序打酱油了。不给力啊。</content>
</SendMail>
<!-- 监控失败处理队列 ,多个动作 END-->
</ScheduleTask>
</TaskManager>
配置好后,直接运行start.bat,以后你就不用半夜起来重启tomcat了。当然,这个工具的功能远不止重启tomcat,好好领会。下面是这个程序的类图:
[img]http://yangguo.iteye.com/upload/picture/pic/80324/9069d7c7-a421-3dd5-a0b9-1d83ae522801.png[/img]
程序打包下载。
补充:有人以为配置是固定的,其实不然。上面只是一个例子。
主要设计思想是:一个任务有一个动作和多个处理器,任务,动作,处理器都可以不断扩展,自由搭配。
例如扩展一个定时任务<OnTimeTask>,动作是关闭某个进程<KillProcess>,处理器是发送手机短信<SendPhoneMsg>。
经过扩展后,更一般的配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<TaskManager>
<OnTimeTask>
<time>2012-12-31 10:00:00</time>
<KillProcess>
<pid> 520</pid>
</KillProcess>
<SendPhoneMsg>
<phone>13433332222</phone>
<content>世界末日了,我杀死了520进程</content>
</SendPhoneMsg>
</OnTimeTask>
<!-- 周期性任务 -->
<ScheduleTask >
<!-- 时间间隔,单位为毫秒 -->
<interval>20000</interval>
<!-- URL监视器 -->
<Monitor>
<url>http://baidu.com</url>
</Monitor>
<!-- 监控失败处理队列 -->
<!-- 运行程序 -->
<RunProgram>
<path>E:\qq.exe</path>
</RunProgram>
</ScheduleTask>
<ScheduleTask >
<!-- 时间间隔,单位为毫秒 -->
<interval>20000</interval>
<!-- URL监视器 -->
<Monitor>
<url>http://baidu.com</url>
</Monitor>
<!-- 监控失败处理队列 -->
<!-- 运行程序 -->
<RunProgram>
<path>E:\qq.exe</path>
</RunProgram>
</ScheduleTask>
<ScheduleTask >
<interval>30000</interval>
<Monitor>
<url>http://localhost</url>
</Monitor>
<!-- 监控失败处理队列 ,多个动作 START-->
<RunProgram>
<path>E:\cluster\tomcat7\bin\startup.bat</path>
</RunProgram>
<!-- 发送邮件 -->
<SendMail>
<receiver>holdmydream@126.com,shenme@126.com,123@163.com</receiver>
<subject>杯具啊</subject>
<content>你的程序已经杯具。不必太伤心,神马都是浮云。</content>
</SendMail>
<SendMail>
<receiver>javaeye2010@126.com</receiver>
<subject>杯具啊</subject>
<content>你的程序打酱油了。不给力啊。</content>
</SendMail>
<!-- 监控失败处理队列 ,多个动作 END-->
</ScheduleTask>
</TaskManager>