taskjava
Ⅰ java 怎麼寫定時任務
如果要執行一些簡單的定時器任務,無須做復雜的控制,也無須保存狀態,那麼可以考慮使用JDK 入門級的定期器Timer來執行重復任務。
一、原理
JDK中,定時器任務的執行需要兩個基本的類:
java.util.Timer;
java.util.TimerTask;
要運行一個定時任務,最基本的步驟如下:
1、建立一個要執行的任務TimerTask。
2、創建一個Timer實例,通過Timer提供的schele()方法,將 TimerTask加入到定時器Timer中,同時設置執行的規則即可。
當程序執行了Timer初始化代碼後,Timer定時任務就會按照設置去執行。
Timer中的schele()方法是有多種重載格式的,以適應不同的情況。該方法的格式如下:
void schele(TimerTask task, Date time)
安排在指定的時間執行指定的任務。
void schele(TimerTask task, Date firstTime, long period)
安排指定的任務在指定的時間開始進行重復的固定延遲執行。
void schele(TimerTask task, long delay)
安排在指定延遲後執行指定的任務。
void schele(TimerTask task, long delay, long period)
安排指定的任務從指定的延遲後開始進行重復的固定延遲執行。
Timer是線程安全的,此類可擴展到大量同時安排的任務(存在數千個都沒有問題)。其所有構造方法都啟動計時器線程。可以調用cancel() 終止此計時器,丟棄所有當前已安排的任務。purge()從此計時器的任務隊列中移除所有已取消的任務。此類不提供實時保證:它使用 Object.wait(long) 方法來安排任務。
TimerTask是一個抽象類,由 Timer 安排為一次執行或重復執行的任務。它有一個抽象方法run()----計時器任務要執行的操作。因此,每個具體的任務類都必須繼承TimerTask類,並且重寫run()方法。另外它還有兩個非抽象的方法:
boolean cancel()
取消此計時器任務。
long scheledExecutionTime()
返回此任務最近實際 執行的安排 執行時間。
二、例子
下面用Timer實現一個簡單例子:
package stu.timer;
import java.util.Date;
import java.util.TimerTask;
/**
* 重復執行的任務
*
* @author leimin,2008-10-9 9:20:20
*/
public class TestTimerTask extends TimerTask {
/**
* 此計時器任務要執行的操作。
*/
public void run() {
Date executeTime = new Date(this.scheledExecutionTime());
System.out.println("本次任務執行的時間是" + executeTime);
}
}
package stu.timer;
import java.util.Timer;
import java.util.TimerTask;
/**
* 測試JDK Timer的執行
*
* @author leimin,2008-10-9 9:24:35
*/
public class TestTimer {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TestTimerTask();
timer.schele(task, 500L, 1000L);
}
}
運行結果:
本次任務執行的時間是Thu Oct 09 09:47:57 CST 2008
本次任務執行的時間是Thu Oct 09 09:47:58 CST 2008
本次任務執行的時間是Thu Oct 09 09:47:59 CST 2008
本次任務執行的時間是Thu Oct 09 09:48:00 CST 2008
本次任務執行的時間是Thu Oct 09 09:48:01 CST 2008
本次任務執行的時間是Thu Oct 09 09:48:02 CST 2008
本次任務執行的時間是Thu Oct 09 09:48:03 CST 2008
本次任務執行的時間是Thu Oct 09 09:48:04 CST 2008
本次任務執行的時間是Thu Oct 09 09:48:05 CST 2008
......
Ⅱ xml怎麼加入taskjava
xml 是文本文件,想怎麼加,就是按文本去添加 。。。。。。。。
Ⅲ 在java中timertask是什麼類
TimerTask是一個實現了Runnable介面的抽象類,代表一個可以被Timer執行的任務。
Timer類是一種線程設施,可以用來實現某一個時間或某一段時間後安排某一個任務執行一次或定期重復執行。該功能和TimerTask配合使用。TimerTask類用於實現由Timer安排的一次或重復執行的某個任務。每一個Timer對象對應的是一個線程,因此計時器所執行的任務應該迅速完成,否則會延遲後續的任務執行。
void cancel()
// 終止此計時器,丟棄所有當前已安排的任務。
int purge()
//從此計時器的任務隊列中移除所有已取消的任務。
void schele(TimerTask task, Date time)
//安排在指定的時間執行指定的任務。
void schele(TimerTask task, Date firstTime, long period)
//安排指定的任務在指定的時間開始進行重復的固定延遲執行。
void schele(TimerTask task, long delay)
//安排在指定延遲後執行指定的任務。
void schele(TimerTask task, long delay, long period)
//安排指定的任務從指定的延遲後開始進行重復的固定延遲執行。
void scheleAtFixedRate(TimerTask task, Date firstTime, long period)
//安排指定的任務在指定的時間開始進行重復的固定速率執行。
void scheleAtFixedRate(TimerTask task, long delay, long period)
//安排指定的任務在指定的延遲後開始進行重復的固定速率執行。
+++++++++++++++++++++++++++++++++++++++++++++++++++
boolean cancel()
//取消此計時器任務。
abstract void run()
//此計時器任務要執行的操作。
long scheledExecutionTime()
//返回此任務最近實際 執行的已安排 執行時間。
++++++++++++++++++++++++++++++++++++++++++++++++++++++
package zzs.time.demo;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;
public class MyTask extends TimerTask {
@Override
public void run() {
// TODO Auto-generated method stub
SimpleDateFormat simpleDateFormat=null;
simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
System.out.println("當前的系統時間為:"+simpleDateFormat.format(new Date()));
}
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
package zzs.time.demo;
import java.util.Timer;
public class TestTask {
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
Timer timer=new Timer();
MyTask myTask=new MyTask();
timer.schele(myTask, 1000, 2000);
// Thread.sleep(5000);
//timer.cancel();
}
}
運行結果:
當前的系統時間為:2011-07-10 15:37:44:831
當前的系統時間為:2011-07-10 15:37:46:786
當前的系統時間為:2011-07-10 15:37:48:786
當前的系統時間為:2011-07-10 15:37:50:786
當前的系統時間為:2011-07-10 15:37:52:786
當前的系統時間為:2011-07-10 15:37:54:786
Ⅳ java task 定時任務怎麼測試
通過debug 來測試.也可以用 jUtils 工具包來測試
Ⅳ java task類庫是什麼
執行循環性的任務,這個類會單獨開啟新線程執行任務。如鬧鍾,5分鍾提醒一次。
Ⅵ Java 如何實現這樣的定時任務
JDK中,定時器任務的執行需要兩個基本的類:
java.util.Timer;
java.util.TimerTask;
要運行一個定時任務,最基本的步驟如下:
1、建立一個要執行的任務TimerTask。
2、創建一個Timer實例,通過Timer提供的schele()方法,將 TimerTask加入到定時器Timer中,同時設置執行的規則即可。
當程序執行了Timer初始化代碼後,Timer定時任務就會按照設置去執行。
Timer中的schele()方法是有多種重載格式的,以適應不同的情況。該方法的格式如下:
void schele(TimerTask task, Date time)
安排在指定的時間執行指定的任務。
void schele(TimerTask task, Date firstTime, long period)
安排指定的任務在指定的時間開始進行重復的固定延遲執行。
void schele(TimerTask task, long delay)
安排在指定延遲後執行指定的任務。
void schele(TimerTask task, long delay, long period)
安排指定的任務從指定的延遲後開始進行重復的固定延遲執行。
Timer是線程安全的,此類可擴展到大量同時安排的任務(存在數千個都沒有問題)。其所有構造方法都啟動計時器線程。可以調用cancel() 終止此計時器,丟棄所有當前已安排的任務。purge()從此計時器的任務隊列中移除所有已取消的任務。此類不提供實時保證:它使用 Object.wait(long) 方法來安排任務。
TimerTask是一個抽象類,由 Timer 安排為一次執行或重復執行的任務。它有一個抽象方法run()----計時器任務要執行的操作。因此,每個具體的任務類都必須繼承TimerTask類,並且重寫run()方法。另外它還有兩個非抽象的方法:
boolean cancel()
取消此計時器任務。
long scheledExecutionTime()
返回此任務最近實際 執行的安排 執行時間。
Ⅶ java 定時任務怎麼寫呀
對於這樣的操作最方便、高效的實現方式就是使用java.util.Timer工具類。
privatejava.util.Timertimer;//給你標注一下包,到時候別找錯了
timer=newTimer(true);
timer.schele(
newjava.util.TimerTask(){publicvoidrun()
{//你要定時執行的功能}},0,30*1000);
第一個參數是要操作的功能,一般匿名內部類,第二個參數是要設定延遲的時間,第三個參
數是周期的設定,每隔多長時間執行該操作。
更詳細的內容,自己找API Timer類看看吧
Ⅷ java中TimerTask 如何才能停止呢
Timer類是用來執行任務的類,它接受一個TimerTask做參數
Timer.cancel();//使用這個方法退出任務
Timer有兩種執行任務的模式,最常用的是schele,它可以以兩種方式執行任務:1:在某個時間(Data),2:在某個固定的時間之後(int delay).這兩種方式都可以指定任務執行的頻率.看個簡單的例子:
import java.io.IOException;
import java.util.Timer;
public class TimerTest {
public static void main(String[] args){
Timer timer = new Timer();
timer.schele(new MyTask(), 1000, 2000);//在1秒後執行此任務,每次間隔2秒,如果傳遞一個Data參數,就可以在某個固定的時間執行這個任務.
while(true){//這個是用來停止此任務的,否則就一直循環執行此任務了
try {
int ch = System.in.read();
if(ch-'c'==0){
timer.cancel();//使用這個方法退出任務
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
static class MyTask extends java.util.TimerTask{
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("________");
}
}
}
Ⅸ java 定時任務
這個是我在網上找的不知道是不是你要的:
java定時任務Timer 關於定時任務,似乎跟時間操作的聯系並不是很大,但是前面既然提到了定時任務,索性在這里一起解決了。設置定時任務很簡單,用Timer類就搞定了。一、延時執行首先,我們定義一個類,給它取個名字叫TimeTask,我們的定時任務,就在這個類的main函數里執行。代碼如下:
package test;
import java.util.Timer;
public class TimeTaskTest {
public static void main(String[] args){ Timer timer = new Timer();
timer.schele(new Task(), 60 * 1000);
}
}
解釋一下上面的代碼。上面的代碼實現了這樣一個功能,當TimeTask程序啟動以後,過一分鍾後執行某項任務。很簡單吧:先new一個Timer對象,然後調用它的schele方法,這個方法有四個重載的方法,這里我們用其中一個,
public void schele(TimerTask task,long delay)
首先,第一個參數第一個參數就是我們要執行的任務。這是一個TimerTask對象,確切點說是一個實現TimerTask的類的對象,因為TimerTask是個抽象類。上面的代碼里 面,Task就是我們自己定義的實現了TimerTask的類,因為是在同一個包裡面,所以沒有顯性的import進來。Task類的代碼如下
package test;
import java.util.TimerTask;
public class Task extends TimerTask { public void run()
{
System.out.println("定時任務執行");
}
}
我們的Task必須實現TimerTask的方法run,要執行的任務就在這個run方法裡面,這里,我們只讓它往控制台打一行字。第二個參數第二個參數是一個long型的值。這是延遲的時間,就是從程序開始以後,再過多少時間來執行定時任務。這個long型的值是毫秒數,所以前面我們的程序裡面,過一分鍾後執行用的參數值就是 60 * 1000。二、循環執行設置定時任務的時候,往往我們需要重復的執行這樣任務,每隔一段時間執行一次,而上面的方法是只執行一次的,這樣就用到了schele方法的是另一個重載函數public void schele(TimerTask task,long delay,long period)
前兩個參數就不用說什麼了,最後一個參數就是間隔的時間,又是個long型的毫秒數(看來java里涉及到時間的,跟這個long是脫不了干係了),比如我們希望上面的任務從第一次執行後,每個一分鍾執行一次,第三個參數值賦60 * 1000就ok了。三、指定執行時間既然號稱是定時任務,我們肯定希望由我們來指定任務指定的時間,顯然上面的方法就不中用了,因為我們不知道程序什麼時間開始運行,就沒辦法確定需要延時多少。沒關系,schele四個重載的方法還沒用完呢。用下面這個就OK了:
public void schele(TimerTask task,Date time)
比如,我們希望定時任務2006年7月2日0時0分執行,只要給第二個參數傳一個時間設置為2006年7月2日0時0分的Date對象就可以了。有一種情況是,可能我們的程序啟動的時候,已經是2006年7月3日了,這樣的話,程序一啟動,定時任務就開始執行了。schele最後一個重載的方法是public void schele(TimerTask task,Date firstTime,long period)
沒必要說什麼了吧:)四、j2ee中的定時任務在實際的項目中,往往定時任務需要對web工程中的資源進行操作,這樣一來,用上面的單個程序的方式可能就有點力不從心了,因為很多web工程的資源它操作不到。解決的辦法是,使用Servlet,把執行定時任務的那些代碼放到Servlet的init()函數里就可以了,這個easy,就沒有必要再寫示例代碼了吧
Ⅹ Java按下面要求編寫一個類Task01
代碼如下:
望採納