㈠ java中在定時器,定時每周一定時執行某個任務,必須在周一重新啟動了服務,該任務就會在指定的時間點執行
最常來用的做法是使用UNIX的cron直接執行源Java程序。
並不需要在Java做的那麼復雜。
Windows伺服器也有類似於cron的任務管理功能,同理
--------------------------->
Tomcat不是用來管理定時任務的,如果沒有HTTP請求,Servlet是不會被執行的。
建議lz把定期執行的處理做成一個獨立的Java程序,用cron執行。
如果不想寫獨立的Java程序,也可以用cron定期向Tomcat發送Http請求,但是,這樣做的話注意程序處理時間不能太長,因為HTTP通信有timeout的制約。
㈡ 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定時器與線程的區別
javax.swing.Timer
盡管所有 Timer 都使用來一個共享線程源(由第一個執行操作的 Timer 對象創建)執行等待,但是 Timer 的動作事件處理程序還會在其他線程(事件指派線程上)執行。這意味著 Timer 的操作處理程序可以安全地在 Swing 組件上執行操作。但是,它也意味著處理程序必須快速執行以保證 GUI 作出響應。
java.util.Timer
一種工具,線程用其安排以後在後台線程中執行的任務。可安排任務執行一次,或者定期重復執行。
簡單理解,javax.swing.Timer沒有增加線程,利用事件線程的間隙運行,java.util.Timer增加線程了。
㈣ java定時器循環執行多個任務,比如A執行完了後3秒鍾執行B,讓後在3秒鍾執行C,然後再執行A依次循環。
java 自帶的,都是一個介面或類。。。
那就是在A完成時,等待3秒,創建B實例,並啟動。。。。。。重復A的結束時的動作、創建C。。。。。。。。
㈤ Java定時器Java定時器怎麼實現一個任務多個時間點,給別人用時間可以改動的
java中quartz框架設置定時任務時,是可以設置各種時間啟動的
每天什麼時候執行:
<value>0 59 23 * * ?</value>: 如下為每天23:59:00開始回執行
<value>0 1,2,3 11,12 * * ? </value>: 每天11:01,11:02,11:03; 12:01,12:02,12:03分執答行任務
至於你說的別人可以改時間,你可以把這個時間參數提取處理,放到一個頁面或者資料庫存起來,然後別人通過頁面或者鏈接資料庫修改就行了。