導航:首頁 > 源碼編譯 > quartz源碼下載

quartz源碼下載

發布時間:2023-08-24 18:35:32

java quartz job 執行時間配置

第一步:引包
要使用Quartz,必須要引入以下這幾個包:
1、log4j-1.2.16
2、quartz-2.1.7
3、slf4j-api-1.6.1.jar
4、slf4j-log4j12-1.6.1.jar
這些包都在下載的Quartz包裡麵包含著,因此沒有必要為尋找這幾個包而頭疼。
第二步:創建要被定執行的任務類
這一步也很簡單,只需要創建一個實現了org.quartz.Job介面的類,並實現這個介面的唯一一個方法execute(JobExecutionContext arg0) throws JobExecutionException即可。如:
import java.text.SimpleDateFormat;

import java.util.Date;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class myJob implements Job {

@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
System.out.println(sdf.format(new Date()));
}

}
import java.text.SimpleDateFormat;

import java.util.Date;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class myJob implements Job {

@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
System.out.println(sdf.format(new Date()));
}

}

這個例子很簡單,就不用解說了。

第三步:創建任務調度,並執行
這一步應該算是最難的一步的,但其實是非常簡單的,直接上代碼


import static org.quartz.CronScheleBuilder.cronSchele;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheler;
import org.quartz.SchelerFactory;
import org.quartz.impl.StdSchelerFactory;

public class Test {
public void go() throws Exception {
// 首先,必需要取得一個Scheler的引用
SchelerFactory sf = new StdSchelerFactory();
Scheler sched = sf.getScheler();
//jobs可以在scheled的sched.start()方法前被調用

//job 1將每隔20秒執行一次
JobDetail job = newJob(myJob.class).withIdentity("job1", "group1").build();
CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchele(cronSchele("0/20 * * * * ?")).build();
Date ft = sched.scheleJob(job, trigger);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
System.out.println(job.getKey() + " 已被安排執行於: " + sdf.format(ft) + ",並且以如下重復規則重復執行: " + trigger.getCronExpression());

// job 2將每2分鍾執行一次(在該分鍾的第15秒)
job = newJob(myJob.class).withIdentity("job2", "group1").build();
trigger = newTrigger().withIdentity("trigger2", "group1").withSchele(cronSchele("15 0/2 * * * ?")).build();
ft = sched.scheleJob(job, trigger);
System.out.println(job.getKey() + " 已被安排執行於: " + sdf.format(ft) + ",並且以如下重復規則重復執行: "+ trigger.getCronExpression());

// 開始執行,start()方法被調用後,計時器就開始工作,計時調度中允許放入N個Job
sched.start();
try {
//主線程等待一分鍾
Thread.sleep(60L * 1000L);
} catch (Exception e) {}
//關閉定時調度,定時器不再工作
sched.shutdown(true);
}

public static void main(String[] args) throws Exception {

Test test = new Test();
test.go();
}

}
import static org.quartz.CronScheleBuilder.cronSchele;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheler;
import org.quartz.SchelerFactory;
import org.quartz.impl.StdSchelerFactory;

public class Test {
public void go() throws Exception {
// 首先,必需要取得一個Scheler的引用
SchelerFactory sf = new StdSchelerFactory();
Scheler sched = sf.getScheler();
//jobs可以在scheled的sched.start()方法前被調用

//job 1將每隔20秒執行一次
JobDetail job = newJob(myJob.class).withIdentity("job1", "group1").build();
CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchele(cronSchele("0/20 * * * * ?")).build();
Date ft = sched.scheleJob(job, trigger);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
System.out.println(job.getKey() + " 已被安排執行於: " + sdf.format(ft) + ",並且以如下重復規則重復執行: " + trigger.getCronExpression());

// job 2將每2分鍾執行一次(在該分鍾的第15秒)
job = newJob(myJob.class).withIdentity("job2", "group1").build();
trigger = newTrigger().withIdentity("trigger2", "group1").withSchele(cronSchele("15 0/2 * * * ?")).build();
ft = sched.scheleJob(job, trigger);
System.out.println(job.getKey() + " 已被安排執行於: " + sdf.format(ft) + ",並且以如下重復規則重復執行: "+ trigger.getCronExpression());

// 開始執行,start()方法被調用後,計時器就開始工作,計時調度中允許放入N個Job
sched.start();
try {
//主線程等待一分鍾
Thread.sleep(60L * 1000L);
} catch (Exception e) {}
//關閉定時調度,定時器不再工作
sched.shutdown(true);
}

public static void main(String[] args) throws Exception {

Test test = new Test();
test.go();
}

}

OK了,Job1和Job2就會被安排為定時執行了。此時程序是可以執行的了,但是可能會輸出WARN級別日誌,這是因為沒有加log4j的配置文件,加上配置文件,就OK了。這里需要說明的地方只有一個,其它的可以直接Copy到您的項目裡面。看代碼:
CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchele(cronSchele("0/20 * * * * ?")).build();
CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchele(cronSchele("0/20 * * * * ?")).build();

㈡ 重裝系統時顯示丟失quartz.dll文件,這種情況怎麼辦

用這個網址http://www.zhaodll.com/search.asp?word=quartz.dll&m=2&x=27&y=3

放到c:windowssystem32下試試。

閱讀全文

與quartz源碼下載相關的資料

熱點內容
彈性雲伺服器安全防護盾 瀏覽:367
電腦程序員用英文咋說 瀏覽:935
計算機高級語言怎麼編譯 瀏覽:581
解壓桃子能用來做什麼 瀏覽:565
個人網頁html源碼 瀏覽:882
安卓手機錄屏清晰度怎麼樣 瀏覽:874
奶粉上的中檢溯源碼靠譜嘛 瀏覽:653
vb文件夾多大 瀏覽:329
有什麼app可以按摩的 瀏覽:93
視頻加密的形式 瀏覽:283
數控圖和編程 瀏覽:421
幫助裝修的APP有什麼缺點 瀏覽:619
php文件下載文件找不到文件 瀏覽:565
百變大偵探超時空同居加密 瀏覽:8
手機維修pdf 瀏覽:327
如何在伺服器上取資料庫 瀏覽:163
源碼生成器手機版 瀏覽:288
命令方塊超級空島生存 瀏覽:20
車庫收費系統顯示加密狗失敗 瀏覽:266
程序員流程圖工具 瀏覽:859