使用ServletContextListener完成定時任務(固定頻率執行)
阿新 • • 發佈:2018-11-10
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 } }