javaweb使用監聽器實現定時週期性執行任務的功能
版權宣告:本文為博主原創文章,如需轉載,請標明出處。 https://blog.csdn.net/alan_liuyue/article/details/71194454
java web使用監聽器實現定時週期性執行任務的功能在做web專案的時候,有時需要做個定時的功能去執行某個
任務,或者定時週期性去執行某個任務,如定時郵件傳送、檔案刪除等。那麼,我們就需要藉助監聽器去實現這一個
功能,具體的實現過程如下:
1.配置web.xml,新增監聽器指定類
<!-- 定時監聽器配置 -->
<listener>
<listener-class>listener.DuetimeListener</listener-class>
</listener>
2.監聽類實現ServletContextListener介面,實現監聽功能
public class DuetimeListener implements ServletContextListener{
private Timer timer = null;
@Override
public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
}
@Override
public void contextInitialized(ServletContextEvent event) {
// 新增tomcat日誌
event.getServletContext().log("定時器已啟動");
System.out.println("定時器啟動");
try {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 12); // 控制時,24小時制
calendar.set(Calendar.MINUTE, 0); // 控制分
calendar.set(Calendar.SECOND, 0); // 控制秒
Date time = calendar.getTime(); // 執行任務的時間,可自行修改,此時為12:00:00
timer = new Timer(true);
//引數1:需要執行的類,引數2:執行時間,引數3:執行週期(引數可自行修改)
//類需要繼承util的TimeTask,預設執行類下的run()方法;
timer.scheduleAtFixedRate(new TestTimeTask(), time, 1000 * 60 * 60 * 24); //隔一天(週期性)掃描執行方法,
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3.功能類繼承TimerTask類,預設執行run方法
public class TestTimeTask extends TimerTask {
@Override
public void run() {
System.out.println("定時掃描監聽器程式開始執行,傳送郵件");
deleteFile();
sendEmail();
//to do
}
public boolean deleteFile(){
System.out.println("定時執行刪除檔案的方法");
return true;
//to do
}
public boolean sendEmail(){
System.out.println("定時執行傳送郵件的方法");
return true;
//to do
}
}
4.該demo,只用到web.xml、DuetimeListener.java、TestTimeTask.java三個檔案,只是實現定時監聽、週期
性執行任務的功能,而郵件傳送、檔案刪除等自定義功能需要自行新增上去,只需在run方法下修改郵件傳送、檔案
刪除等功能即可;
5.demo連結:http://download.csdn.net/detail/alan_liuyue/9834172
相關文章
- 使用監聽器實現JavaWeb的定時執行JavaWeb
- 永遠不要使用 redis 過期監聽實現定時任務Redis
- PHP定時執行任務的實現PHP
- PHP定時執行任務PHP
- 配置監聽器,建立執行緒定時執行業務邏輯執行緒行業
- Java實現終止執行緒池中正在執行的定時任務Java執行緒
- 定時任務的實現
- javaWeb中的監聽器JavaWeb
- spring執行定時任務Spring
- laravel框架任務排程(定時執行任務)Laravel框架
- 使用Java實現定時任務排程Java
- gulp壓縮html,css,js檔案流程、監聽任務、使用gulp建立伺服器、同時執行多個任務、反向代理HTMLCSSJS伺服器
- ubuntu上使用cron執行定時任務計劃Ubuntu
- 使用spring @Scheduled註解執行定時任務、Spring
- Laravel + Workerman 實現多程式定時器任務Laravel定時器
- java springboot 實現定時器任務JavaSpring Boot定時器
- php後臺定時執行任務PHP
- java web每天定時執行任務JavaWeb
- 多執行緒-定時任務的多次執行程式碼體現執行緒行程
- 寶塔---伺服器終端執行定時任務伺服器
- oracle job使用方法--實現定時任務Oracle
- celery筆記七之週期/定時任務及crontab定義筆記
- ASP.NET 中的定時執行任務ASP.NET
- 在Spring中使用JDK定時器實現排程任務SpringJDK定時器
- Django配置celery執行非同步任務和定時任務Django非同步
- CentOS Linux使用crontab執行定時任務詳解CentOSLinux
- Java如何實現定時任務?Java
- Laravel5.6 使用定時任務實現定時發郵件Laravel
- Laravel5.6使用定時任務實現定時發郵件Laravel
- 使用者自定義定時任務的php實現PHP
- SpringBoot執行定時任務@ScheduledSpring Boot
- Laravel 定時任務突然無法執行Laravel
- kettle執行定時任務,kitchen.batBAT
- Android利用AlarmManager執行定時任務Android
- Ext.util.TaskRunner定時執行任務
- 如何實現簡單的定時全域性唯一任務?
- 基於Redis實現分散式鎖,避免重複執行定時任務Redis分散式
- [筆記]laravel定時任務的實現筆記Laravel