日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java quartz2.1_quartz 2.1学习(一)

發布時間:2024/9/27 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java quartz2.1_quartz 2.1学习(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

quartz是一種開源任務調度框架,提供了強大的任務調度機制,Quartz允許開發人員靈活地定義觸發器的調度時間表,并可對觸發器和任務進行關聯映射。廢話不多說了,介紹一下編程的基本步驟:

實現Job接口,編碼實現需要執行的任務。

定義jobdetail對象,這個對象需要job實現類作為參數

定義trigger,trigger就是一個時間表,定義什么時候來執行任務,主要分為simpletrigger和crontrigger兩個子類,前者適用于簡單情況:只執行一次或者固定間隔執行;后者使用表達式來靈活調度任務的執行。

定義schedulefactory實例,從schedulefactory工廠中獲取schedule對象。schedule就像一個容器,里面放入任務和時間表,將某個任務和某個時間表綁定,就可以讓任務按照指定的時間執行。其實schedule就是一個線程池。

下面是個例子:

package quartz;

import java.util.Date;

import org.quartz.Job;

import org.quartz.JobDataMap;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

/**

* Copyright

*
Program Name:TestJavaProject

*
Comments:

*
JDK version used:

*
Create Date:2013-7-17

* @author LA

* @version

*/

public class SimpleJob implements Job{

private Logger logger=LoggerFactory.getLogger(SimpleJob.class);

@Override

public void execute(JobExecutionContext jobCtx) throws JobExecutionException {

System.out.println("I can count to 10->");

//輸出1-10

for(int i=1;i<=10;i++){

System.out.println(" | "+i+" ");

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

// TODO: handle exception

}

}

System.out.println("

JobDataMap properties=jobCtx.getJobDetail().getJobDataMap();

System.out.println("Previous fire time: "+jobCtx.getPreviousFireTime());

System.out.println("curent file time: "+jobCtx.getFireTime());

System.out.println("next fire time: "+jobCtx.getNextFireTime());

}

}

package quartz;

import org.quartz.CronScheduleBuilder;

import org.quartz.CronTrigger;

import org.quartz.JobBuilder;

import org.quartz.JobDetail;

import org.quartz.Scheduler;

import org.quartz.SchedulerFactory;

import org.quartz.SimpleScheduleBuilder;

import org.quartz.TriggerBuilder;

import org.quartz.impl.StdSchedulerFactory;

/**

* Copyright

*
Program Name:TestJavaProject

*
Comments:

*
JDK version used:

*
Create Date:2013-7-17

* @author LA

* @version

*/

public class CronTriggerRunner {

/**

* @param args

*/

public static void main(String[] args) {

try {

JobDetail jobDetail=JobBuilder.newJob(SimpleJob.class).withIdentity("myjob", "job-group").build();

CronTrigger cronTrigger=TriggerBuilder.newTrigger().withIdentity("cronTrigger", "trigger-group").withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?")).build();

SchedulerFactory sFactory=new StdSchedulerFactory();

Scheduler scheduler=sFactory.getScheduler();

scheduler.scheduleJob(jobDetail, cronTrigger);

scheduler.start();

} catch (Exception e) {

e.printStackTrace();

}

}

}

其中定義crontrigger對象時,使用“0/5 * * * * ?”來表示執行的時間表,意思是從0s開始,每隔5秒執行一次,每分每時每天每月。其中0/5的意思是:從0開始,每隔5,即0,5,10.。。。;“*”表示通配,“?”表示占位,沒有意義。更多的表達式寫法可以查閱相關資料

總結

以上是生活随笔為你收集整理的java quartz2.1_quartz 2.1学习(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。