程序定时执行某个方法
首先要添加监听
在web.xml中添加
<listener>
<listener-class>com.common.jpush.Jpushlinster</listener-class>
</listener>
其次就是编写监听器
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* 发送信息Listener
* @author yang
*
*/
/**
* @author yang
*
*/
public class Jpushlinster implements ServletContextListener
{
private java.util.Timer timer = null;
/**
* 这个方法在Web应用服务做好接受请求的时候被调用。
*/
public void contextInitialized(ServletContextEvent event)
{
timer = new java.util.Timer(true);
event.getServletContext().log("定时器已启动");
System.out.println("定时器已经启动");
timer.schedule(new StatisticsTask(event.getServletContext()), 0, 60*1000);//每隔一段时间,时间自拟
event.getServletContext().log("已经添加任务调度表");
}
/**
* 这个方法在Web应用服务被移除,没有能力再接受请求的时候被调用。
*
*/
public void contextDestroyed(ServletContextEvent event)
{
timer.cancel();
event.getServletContext().log("定时器销毁");
}
}
最后就是编写要执行的代码
import java.util.Calendar;
import java.util.TimerTask;
import javax.servlet.ServletContext;
import org.springframework.beans.factory.annotation.Autowired;
/**
* 这行任务
*
* @author yang
*
*/
public class StatisticsTask extends TimerTask {
private static final int STATISTICS_SCHEDULE_HOUR = 0;
private static boolean isRunning = false;
private ServletContext context = null;
public StatisticsTask(ServletContext context) {
this.context = context;
}
@Override
public void run() {
Calendar cal = Calendar.getInstance();
// System.out.println(isRunning);
if (1==1) {
context.log("开始执行指定任务");
// TODO 添加自定义的详细任务
isRunning = pushmsgService.sendMsg();//执行任务
if(isRunning)
// 指定任务执行结束
context.log("指定任务执行结束");
else{
context.log("指定任务执行失败");
}
}
}
}
这里面部分代码涉及到项目已经隐掉,参考者请仔细、谨慎使用