使用ServletContextListener完成定时任务(固定频率执行)

ServletContextListener在服务器启动的时候就会执行,这时候可以在里面写一些定时执行任务

这里进行模拟银行计息

首先创建一个类实现ServletContextListener接口,在contextInitialized()方法中写入想要执行的代码

第二进行web.xml配置监听器


  <listener>
    <listener-class>com.raylu.listener.MyContextListener</listener-class>
  </listener>

这里模拟定时执行计息的:

package com.raylu.listener;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

/**
 * 使用ServletContextListener完成定时任务
 * 这里模拟银行定时计息任务
 * @author RayLu
 *
 */
public class MyContextListener implements ServletContextListener{

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		//设置一个计时器模拟银行计息工作
		Timer timer = new Timer();
		String date="2017-06-05 21:39:00";
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date1 = null;
		try {
			date1 = format.parse(date);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		timer.scheduleAtFixedRate(new TimerTask(){

			@Override
			public void run() {
			//	System.out.println("开始算利息!!"+format.format(new Date()).toString());
				
			}
			
		}, date1, 3000);
	}

	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		// TODO Auto-generated method stub
		
	}

}


猜你喜欢

转载自blog.csdn.net/java_raylu/article/details/74129753