Ⅰ java定時執行任務,每天定時幾點鍾執行任務
案例: 你想讓他幾點執行都ok
1.MyJob02
//首先我們需要定義一個任務類,比如為MyJob02 ,
//該類需要繼承Job類,然後添加execute(JobExecutionContext context)方法,在
//這個方法中就是我們具體的任務執行的地方。
//由希望由調度程序執行的組件實現的介面
public class MyJob02 implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// TODO Auto-generated method stub
// 執行響應的任務.
System.out.println("HelloJob.execute,"+new Date());
}
2.
public static void main(String[] args) throws Exception {
//SchelerFactory 是一個介面,用於Scheler的創建和管理
SchelerFactory factory = new StdSchelerFactory();
//從工廠裡面拿到一個scheler實例
//計劃表(可能翻譯的不太貼切),現在我們有了要做的內容,
//與調度程序交互的主要API
/*
* Scheler的生命期,從SchelerFactory創建它時開始,
到Scheler調用shutdown()方法時結束;Scheler被創建後,
可以增加、刪除和列舉Job和Trigger,以及執行其它與調度相關的操作
(如暫停Trigger)。但是,Scheler只有在調用start()方法後,
才會真正地觸發trigger(即執行job)
*/
Scheler scheler = factory.getScheler();
//具體任務.
//用於定義作業的實例
//JobBuilder - 用於定義/構建JobDetail實例,用於定義作業的實例。
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").build();
//Trigger(即觸發器) - 定義執行給定作業的計劃的組件
//TriggerBuilder - 用於定義/構建觸發器實例
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
.withSchele(CronScheleBuilder.cronSchele("0/1 * * * * ?")).build();
scheler.scheleJob(job, trigger);
scheler.start();
}
Ⅱ JAVA實現定時任務的幾種方式
Java 基本的定時任務,總結方法有三種:
1 創建一個thread,然後讓它在while循環內里一直運行著,通過容sleep方法來達到定時任務的效果;
2 用Timer和TimerTask與第一種方法相比有如下好處:
當啟動和去取消任務時可以控制
第一次執行任務時可以指定你想要的delay時間
3 用ScheledExecutorService是從的java.util.concurrent里,做為並發工具類被引進的,這是最理想的定時任務實現方式,相比於上兩個方法,它有以下好處:
相比於Timer的單線程,它是通過線程池的方式來執行任務的
可以很靈活的去設定第一次執行任務delay時間
提供了良好的約定,以便設定執行的時間間隔