導航:首頁 > 編程語言 > java定時器定時執行一次

java定時器定時執行一次

發布時間:2025-03-18 17:02:09

java定時器 每天凌晨 固定執行一個方法

可以通過以下方式實現,

public class TimerManager {
//時間間隔
private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
public TimerManager() {
Calendar calendar = Calendar.getInstance();
/*** 定製每日:00執行方法 ***/
calendar.set(Calendar.HOUR_OF_DAY, 2);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);

Date date=calendar.getTime(); //第一次執行定時任務的時間

//如果第一次執行定時任務的時間 小於 當前的時間
//此時要在 第一次執行定時任務的時間 加一天,以便此任務在下個時間點執行。如果不加一天,任務會立即執行。
if (date.before(new Date())) {
date = this.addDay(date, 1);
}

Timer timer = new Timer();

NFDFlightDataTimerTask task = new NFDFlightDataTimerTask();
//安排指定的任務在指定的時間開始進行重復的固定延遲執行。
timer.schele(task,date,PERIOD_DAY);
}

// 增加或減少天數
public Date addDay(Date date, int num) {
Calendar startDT = Calendar.getInstance();
startDT.setTime(date);
startDT.add(Calendar.DAY_OF_MONTH, num);
return startDT.getTime();
}

}

public class NFDFlightDataTimerTask extends TimerTask {

private static Logger log = Logger.getLogger(NFDFlightDataTimerTask.class);

@Override
public void run() {
try {
//在這里寫你要執行的內容

} catch (Exception e) {
log.info("-------------解析信息發生異常--------------");
}
}
}

public class NFDFlightDataTaskListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
new TimerManager();
}
public void contextDestroyed(ServletContextEvent event) {
}

}

然後要在web.xml裡面配置監聽器
<listener>
<listener-class>
com.listener.NFDFlightDataTaskListener
</listener-class>
</listener>

⑵ 如何讓java程序每天執行一次

寫一個定時器

importjava.util.Timer;
importjava.util.TimerTask;

publicclassM{
publicstaticvoidmain(String[]args){
//TODOtodo.generatedbyzoer
Timertimer=newTimer();
//newMyTask()里可以寫定時執行的方法1000是1s後開始執行2000是每兩秒執行一次
timer.schele(newMyTask(),1000,2000);
}
}

classMyTaskextendsTimerTask{

@Override
publicvoidrun(){
System.out.println("需要定時執行的程序");

}

}

⑶ java中在定時器,定時每周一定時執行某個任務,必須在周一重新啟動了服務,該任務就會在指定的時間點執行

最常來用的做法是使用UNIX的cron直接執行源Java程序。
並不需要在Java做的那麼復雜。

Windows伺服器也有類似於cron的任務管理功能,同理

--------------------------->
Tomcat不是用來管理定時任務的,如果沒有HTTP請求,Servlet是不會被執行的。

建議lz把定期執行的處理做成一個獨立的Java程序,用cron執行。
如果不想寫獨立的Java程序,也可以用cron定期向Tomcat發送Http請求,但是,這樣做的話注意程序處理時間不能太長,因為HTTP通信有timeout的制約。

⑷ 怎樣用java做個定時器,每個星期一中午12點整執行doXX這一動作。越詳細越好.用監聽哥跪謝!

主類:
package tiwen4; import java.util.Calendar; import java.util.Timer; public class quartz { public static void main(String[] args) { try{ Calendar cal = Calendar.getInstance();//設置定時時間 cal.add(Calendar.DATE, 0);//表示從今天的12點開始跑起來,如果當前時間超過12點會馬上跑一次,否則等12點再跑第一次 cal.set(Calendar.HOUR_OF_DAY, 12);//24小時制的,12就是中午12點 cal.set(Calendar.MINUTE, 0);//分 cal.set(Calendar.SECOND, 0);//秒 Timer processTimer = new Timer(); processTimer.scheleAtFixedRate(new ProcessClass(), cal.getTime(), 86400000);//86400000是24小時,即24小時跑一次 }catch(Exception e){ e.printStackTrace(); }finally{ } } }

定時器調用的類--我在這里只是輸出了一下~你也可以自己加函數:
package tiwen4; import java.util.TimerTask; public class ProcessClass extends TimerTask { @Override public void run() { // TODO Auto-generated method stub System.out.println("輸出了哈哈");// } }

我上面用的只是一種方式,其實定時方式有很多的linux和window都有自帶的定時器,可以直接調用,也可以用上面所說的quartz包帶的框架等等

⑸ java中每個月第一天執行一次任務的定時器如何實現

Date d = new Date();//獲取伺服器的時間。。。
Calendar c= Canlendar.getInstance();
c.setTime(d);

if(c.get(Calendar.DAY_OF_MONTH) == 1) //當前是1號
{
//拿出黨員的入黨日期(年月)同當前月進行比較 如果相同 發送簡訊
// //寫下你的判斷代碼
}
else //當前不是1號 則從下個月1號開始執行定期任務
{

c.set(Calendar.MONTH,c.get(Calendar.MONTH)+ 1);//設置為下月
c.set(Calendar.DAY_OF_MONTH,1);//設置為下月的1號

Timer timer =new Timer();

timer.scheleAtFixedRate(new TimerTask()
{
public void run()
{
//每天都來判斷一下 如果當前日期是1號
////則拿出黨員的入黨日期(年月)同當前月進行比較 如果相同 發送簡訊
//run函數里寫下你的判斷代碼
}},c.getTime(),24* 3600*1000); //每天執行一次run()方法...
}

閱讀全文

與java定時器定時執行一次相關的資料

熱點內容
u盤顯示木馬文件刪除怎麼恢復 瀏覽:860
蘋果相冊怎麼看照片在哪個文件夾 瀏覽:635
tgp新版本雙開怎麼跟隨 瀏覽:684
可編程邏輯控制器有哪些種類 瀏覽:145
注銷公司營業執照去什麼網站 瀏覽:917
adobecs6hosts文件 瀏覽:673
鄰區優化工具 瀏覽:192
gis數據都包括什麼信息 瀏覽:971
C編程哪個培訓好 瀏覽:220
反詐騙app怎麼改個人信息 瀏覽:691
java日期加減分鍾 瀏覽:985
無效kmz文件什麼意思 瀏覽:935
數控離子割怎麼編程 瀏覽:141
windows內存映射磁碟文件 瀏覽:73
javajdk中文幫助 瀏覽:128
rhino如何看數據 瀏覽:231
清障車在哪個app可以看 瀏覽:343
網路響應報錯是什麼意思 瀏覽:841
怎麼查看自己qq密碼 瀏覽:177
哪些app可以租兩個月房子 瀏覽:727

友情鏈接