使用監聽器實現JavaWeb的定時執行
定時器GoogleListener類:
import java.util.Timer;//定時器類
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import cn.edu.KFC.bean.GoogleTimer;
public class GoogleListener implements ServletContextListener {
private Timer timer = null;
public void contextInitialized(ServletContextEvent event) {
// 在這裡初始化監聽器,在tomcat啟動的時候監聽器啟動,可以在這裡實現定時器功能
timer = new Timer(true);
// 新增日誌,可在tomcat日誌中檢視到
event.getServletContext().log("定時器已啟動");
System.out.println("定時器已啟動");
// 呼叫GoogleTimer,0表示任務無延遲,5*1000表示每隔5秒執行任務,60*60*1000表示一個小時,24*60*60*1000表示一天。
timer.schedule(new GoogleTimer(event.getServletContext()), 0, 2 * 60 * 1000); //每2分鐘執行一次GoogleTimer類
event.getServletContext().log("已經新增任務");
System.out.println("定時器已新增");
}
public void contextDestroyed(ServletContextEvent event) {// 在這裡關閉監聽器,所以在這裡銷燬定時器。
timer.cancel();
event.getServletContext().log("定時器銷燬");
}
}
被呼叫的GoogleTimer類的寫法,注意extends TimerTask,並且在run()方法中執行業務:
import java.util.Calendar;
import java.util.TimerTask;
import javax.servlet.ServletContext;
import cn.edu.KFC.bean.GoogleAnalytics;
public class GoogleTimer extends TimerTask{
private ServletContext context = null;
GoogleAnalytics ga = new GoogleAnalytics();
public GoogleTimer(ServletContext context){
this.context = context;
}
public void run(){
ga.myTest();
}
}
最後,在web.xml中設定監聽器
<listener>
<listener-class>cn.edu.KFC.bean.GoogleListener</listener-class>
</listener>
相關文章
- javaWeb中的監聽器JavaWeb
- python使用裝飾器實現的事件中心(監聽器)Python事件
- 【JavaWeb】EL表示式&過濾器&監聽器JavaWeb過濾器
- 永遠不要使用 redis 過期監聽實現定時任務Redis
- jfinal中如何使用過濾器監控Druid監聽SQL執行?過濾器UISQL
- PHP定時執行任務的實現PHP
- 案例五:shell指令碼實現定時監控http服務的執行狀態指令碼HTTP
- 利用定時器實現51微控制器返回上電執行時間功能定時器
- JavaWeb之Servlet、攔截器、監聽器及程式設計思想JavaWebServlet程式設計
- java鍵盤監聽之視窗監聽的實現Java
- 監聽器,過濾器,攔截器的執行過程和對比過濾器
- 還在用定時器嗎?藉助 CSS 來監聽事件定時器CSS事件
- Java實現終止執行緒池中正在執行的定時任務Java執行緒
- python 實現計時器,統計執行時長Python
- javaWeb的執行流程JavaWeb
- 多IP伺服器上監聽器的設定伺服器
- Lumen 實現 SQL 監聽SQL
- 獲取執行埠監聽的使用者身份auth-owner
- 使用jconsole監測SAP commerce執行時
- Laravel 實時監聽列印 SQLLaravelSQL
- 馴服定時器和執行緒定時器執行緒
- 伺服器部署python指令碼並使用crontab定時執行伺服器Python指令碼
- C++定時器CTimer的實現C++定時器
- Apache和Spring提供的StopWatch執行時間監視器ApacheSpring
- 安卓使用物理鍵監聽器安卓
- 時間監聽
- 在duplicate時,出現監聽BLOCKED的情況,導致監聽自動關閉BloC
- 使用GoldenGate EVENTACTIONS執行資料的實時觸發和定製化Go
- 關於瀏覽器裡事件的捕獲和冒泡及監聽器執行的順序瀏覽器事件
- OkHttp優雅的實現下載監聽HTTP
- 【JavaScript定時器小案例】常見的幾種定時器實現的案例JavaScript定時器
- JavaFx 監聽剪下板實現(Kotlin)JavaKotlin
- MySQL定時執行MySql
- laravel 監聽mqtt 實現釋出 訂閱 哪個包穩定?LaravelMQQT
- JavaScript實時監聽input中值變化JavaScript
- Vue3 為何使用 Proxy 實現資料監聽Vue
- Go定時器的三種實現方式Go定時器
- ScheduledThreadPoolExecutor原始碼分析-你知道定時執行緒池是如何實現延遲執行和週期執行的嗎?thread原始碼執行緒
- Spring中如何優雅的使用監聽器模式Spring模式