tomcat启动时开启定时器pingIp地址
来源:互联网 发布:unity3d教程视频哪个好 编辑:程序博客网 时间:2024/06/06 17:43
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class test implements ServletContextListener {
private Timer timer = null;
//启动定时器
@Override
public void contextInitialized(ServletContextEvent event) {
timer = new Timer(true);
event.getServletContext().log("定时器已启动");
timer.scheduleAtFixedRate(new TestTask2(), 7 * 1000, 10 * 1000); // 每小时执行一次run方法 测试5秒5 * 1000
}
//定时器销毁
@Override
public void contextDestroyed(ServletContextEvent event) {
if (timer != null) {
timer.cancel();
event.getServletContext().log("定时器销毁");
}
}
//ping ip
public void pingIp(String ip) {
Runtime runtime =Runtime.getRuntime(); // 获取当前程序的运行进对象
Process process = null; //声明处理类对象
String line = null; //返回行信息
InputStream is = null; //输入流
InputStreamReader isr = null;// 字节流
BufferedReader br = null;
boolean res = false;// 结果
try {
process =runtime.exec("ping " + ip); // PING
is =process.getInputStream(); // 实例化输入流
isr = new InputStreamReader(is);// 把输入流转换成字节流
br = new BufferedReader(isr);// 从字节中读取文本
while ((line= br.readLine()) != null) {
if(line.contains("TTL")) {
res= true;
break; }
}
is.close();
isr.close();
br.close();
if (res){
System.out.println("ping通 ...");
} else{
System.out.println("ping不通...");
}
} catch (IOException e) {
System.out.println(e);
runtime.exit(1);
}
}
}
//内部类
class TestTask2 extends TimerTask {
protected final Log logger = LogFactory.getLog(getClass());
private static boolean isRunning = false;
String[] ip = {};
@Override
public void run() {
// 是否整点
// Calendar c = Calendar.getInstance();
// if (C_SCHEDULE_HOUR == c.get(Calendar.HOUR_OF_DAY))
if (!isRunning) {
isRunning = true;
logger.info("开始执行任务。");
/* new test().pingIp[](ip);
*/
isRunning = false;
logger.info("任务执行结束。");
} else {
logger.info("上一次任务执行还未结束,本次任务不能执行。");
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class test implements ServletContextListener {
private Timer timer = null;
//启动定时器
@Override
public void contextInitialized(ServletContextEvent event) {
timer = new Timer(true);
event.getServletContext().log("定时器已启动");
timer.scheduleAtFixedRate(new TestTask2(), 7 * 1000, 10 * 1000); // 每小时执行一次run方法 测试5秒5 * 1000
}
//定时器销毁
@Override
public void contextDestroyed(ServletContextEvent event) {
if (timer != null) {
timer.cancel();
event.getServletContext().log("定时器销毁");
}
}
//ping ip
public void pingIp(String ip) {
Runtime runtime =Runtime.getRuntime(); // 获取当前程序的运行进对象
Process process = null; //声明处理类对象
String line = null; //返回行信息
InputStream is = null; //输入流
InputStreamReader isr = null;// 字节流
BufferedReader br = null;
boolean res = false;// 结果
try {
process =runtime.exec("ping " + ip); // PING
is =process.getInputStream(); // 实例化输入流
isr = new InputStreamReader(is);// 把输入流转换成字节流
br = new BufferedReader(isr);// 从字节中读取文本
while ((line= br.readLine()) != null) {
if(line.contains("TTL")) {
res= true;
break; }
}
is.close();
isr.close();
br.close();
if (res){
System.out.println("ping通 ...");
} else{
System.out.println("ping不通...");
}
} catch (IOException e) {
System.out.println(e);
runtime.exit(1);
}
}
}
//内部类
class TestTask2 extends TimerTask {
protected final Log logger = LogFactory.getLog(getClass());
private static boolean isRunning = false;
String[] ip = {};
@Override
public void run() {
// 是否整点
// Calendar c = Calendar.getInstance();
// if (C_SCHEDULE_HOUR == c.get(Calendar.HOUR_OF_DAY))
if (!isRunning) {
isRunning = true;
logger.info("开始执行任务。");
/* new test().pingIp[](ip);
*/
isRunning = false;
logger.info("任务执行结束。");
} else {
logger.info("上一次任务执行还未结束,本次任务不能执行。");
}
}
}
-----------------------------------------------------------------------
web.xml配置监听器
<listener>
<listener-class>test.ServerInfoController</listener-class>
</listener>
0 0
- tomcat启动时开启定时器pingIp地址
- PingIP地址
- Python3 pingIP地址,Windows和Linux
- 定时器开启
- 开启devMode模式,启动Tomcat报错
- Ubuntu下设置tomcat开启自启动
- ubuntu下设置Tomcat开启自动启动
- tomcat启动的同时,监听也开启
- pingIP告警
- tomcat启动timer定时器会执行两次问题解决方案
- javaweb启动时开启线程
- suse下定制开启启动tomcat的计划任务
- 定时器开启和关闭
- spring开启定时器任务
- 启动Tomcat时一闪而过(Tomcat启动失败)
- 启动Tomcat时一闪而过(Tomcat启动失败)
- Tomcat服务器启动失败, cmd命令行中开启时cmd窗口一闪而过, 原来是配置文件 server.xml 编码方式不对
- tomcat启动时OutOfMemoryError
- 安卓打包 进阶 配置文件解释
- java基础_day0020_类的封装性_属性_方法_构造器
- Hibernate简单小程序--浅入hibernate
- Android Rxjava使用方法
- 使用SpringMVC注解@RequestParam(value="XXX",required=false)时需要注意的问题
- tomcat启动时开启定时器pingIp地址
- NAND FLASH ECC 校验机制分析
- 关键字--sizeof
- 设置setOnClickListener后点击以后设置为不可再次点击
- 关于配置MySQL语句长度限制的问题
- 查找算法之哈希查找
- Maximum Depth of Binary Tree
- 使用Python scipy linprog 线性规划求最大值或最小值(使用Python学习数学建模笔记)
- E签宝电子合同对接实战经验