思路是通过批处理来运行class文件,根据反馈结果进行不同的处理:如果接口可访问,将运行正常写入日志;如果不可访问则进行重启系统。
1、首先写java文件,新建文本文档,写入下面代码并保存为Test.java文件
import java.net.URL;
import java.net.URLConnection;
public class Test{
public static void main(String[] args) {
testUrlWithTimeOut("http://localhost:8080/tlyd/login.html");
}
public static boolean testUrlWithTimeOut(String urlString){
int timeOutMillSeconds=2000;
URL url;
try {
url = new URL(urlString);
URLConnection co = url.openConnection();
co.setConnectTimeout(timeOutMillSeconds);
co.connect();
System.out.println("接口可用");
System.exit(0);
return true;
} catch (Exception e1) {
System.out.println("接口打不开!");
System.exit(1);
return false;
}
}
}
2、用cmd对Test.java进行编译,在Test.java的路径下打开cmd窗口运行以下命令
javac -encoding UTF-8 Test.java
java Test
此时控制台没有报错说明编译成功切正常运行。这时Test.java会生成一个Test.class文件。
3、批处理命令,新建文本文档,写入下面代码并保存为存活监控.bat文件
::存活监控!
@echo off
set "yMd=%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,8%"
java Test
if ERRORLEVEL 1 (goto err) else (goto ok)
:err
echo %yMd% 程序连接失败,进行重启! >> D:\yd_code\code\存活监控日志.log
set port=8080
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
echo kill the process %%m who use the port
taskkill /pid %%m -t -f
)
goto start
exit
:ok
echo %yMd% 程序运行正常 >> D:\yd_code\code\存活监控日志.log
exit
:start
start java -jar D:\yd_code\code\admin.jar
这时将Test.class、存活监控.bat、admin.jar 三个文件放同一目录下。
点击存活监控.bat即可实现http://localhost:8080/tlyd/login.html的监控,如果这个接口或者页面无法访问,就会重启程序。
最后可以利用windows系统的定时任务来运行存活监控.bat。
源文件地址:https://download.csdn.net/download/qq_36802726/15381251