首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)

2012-12-19 
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之我的思路(守护进程)Java 实现程序运行监控状态之我的

编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之我的思路(守护进程)

Java 实现程序运行监控状态之我的思路(守护进程)

问题:写出这个工具的意义在于我运行一个需要长时间执行的程序,如单线程爬虫。在网络出现中断的或网站丢包情况下,程序会抛出socketexception 和sockettimeoutexception。程序会中断。(再此只是提出一种假设)

解决方案:

Java 并不能像C#一样对windows的进程进行监控(资料说这是跨平台原因)。因此没有api 提供对其他进程的监控(如果在此您有其他办法,希望您给出宝贵建议)。所以很多人都是通过对文件的加锁,来判断程序是否在运行。

一、判断当前程序是否正在运行

在此我参考了:

java 对文件的加锁。

http://www.examda.com/Java/jichu/20070411/140527453.html

(原文地址不知)

这里的思路是:

1、?在要监视写的程序中(这里假设为爬虫)对一个用来判断程序是否运行的文件(自定义,无实际意义。只是一个空文件)对文件进行加锁。

2、?在守护程序中写了简单的 循环来实现按时探测。这里面比如说20秒。

3、??如果程序确实在运行(即文件不能再被加锁,因为已被锁),那么证明程序确实在运行,否则,如果程序出现了网络异常而中断,那么runtime重新调用该程序。

(演示代码如下:注意不要忘了在爬虫程序中需要对文件进行加锁)。这样才有效。

演示代码:


编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)import?java.io.File;
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)import?java.io.FileNotFoundException;
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)import?java.io.IOException;
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)import?java.io.RandomAccessFile;
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)import?java.nio.channels.FileChannel;
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)import?java.nio.channels.FileLock;
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)import?data.BaseDataofConfiguration;
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)public?class?ThreadKeepTools?编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????/**?*//**
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????*?通过文件锁来判断程序是否正在运行
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????*?@return?如果正在运行返回true,否则返回false
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????*/
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????private?static?boolean?isRunning(String?fileLockPath)
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????boolean?rv=false;
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????try?编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????//
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????String?os_name=System.getProperty("os.name");
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????//指定文件锁路径
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????String?path=null;
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????if(os_name.indexOf("Windows")>-1)
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????????//如果是Windows操作系统
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????????path=System.getProperty("user.home")+System.getProperty("file.separator");
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????}
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????else
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????????path="/usr/temp/";
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????}
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????File?dir=new?File(path);
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????if(!dir.exists())
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????????dir.mkdirs();
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????}
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????//程序名称
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????String?applicationName="run.bat";
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????RandomAccessFile?fis?=?new?RandomAccessFile(fileLockPath,"rw");
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????FileChannel?lockfc?=?fis.getChannel();
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????FileLock?flock?=?lockfc.tryLock();
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????if(flock?==?null)?编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????????System.out.println("程序正在运行.");
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????????rv=true;
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????????
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????}else?编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????????flock.release();
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????}
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)?????????
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????}?catch?(FileNotFoundException?e1)?编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????e1.printStackTrace();
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????}
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????catch?(IOException?e)?编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????e.printStackTrace();
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????}
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????return?rv;
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????}
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????public?static?void?ExcuteThread()?throws?InterruptedException编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????String?strFilePath=BaseDataofConfiguration.baseUrlOfPro+"testThread.txt";
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????String?strBatPath=BaseDataofConfiguration.baseUrlOfPro+"run.bat";
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????strBatPath=strBatPath.replaceFirst("/",?"");
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????while(true)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????System.out.println("strFilePath:"+strFilePath);
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????boolean?RunOrNOT=isRunning(strFilePath);
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????System.out.println("RunOrNot:"+RunOrNOT);
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????if(!RunOrNOT)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????try?编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????????System.out.println("开始执行程序!");
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????????Runtime.getRuntime().exec("cmd?/k?start?"+strBatPath);
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????????System.out.println("strbatpath:"+strBatPath);
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????}?catch?(IOException?e)?编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????????//?TODO?Auto-generated?catch?block
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????????e.printStackTrace();
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????}?
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????}else?编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????Thread.sleep(6000);
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????}
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????Thread.sleep(10000);
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????}
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????}
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????public?static?void?main(String[]?args)?编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????try?编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????ExcuteThread();
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????}?catch?(InterruptedException?e)?编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程){
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????//?TODO?Auto-generated?catch?block
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????????e.printStackTrace();
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????????}
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)????}
编程小记 scorpio 小蝎 Java 实现程序运行状态监控 之小弟我的思路(守护进程)}

热点排行