quartz.jar(包括doc)
v2.2.1 完整版- 軟件大?。?span itemprop="fileSize">4.41 MB
- 軟件語言:中文
- 軟件類型:
- 軟件授權(quán): 免費軟件
- 更新時間:2017-07-03 10:04:30
- 軟件等級:
- 軟件廠商: -
- 應(yīng)用平臺:WinXP, Win7, Win8, Win10
- 軟件官網(wǎng): 暫無
相關(guān)軟件
智慧靖安v1.0.6 安卓版
31.80 MB/中文/10.0
Java Email 在Tomcat所依賴的Jar包免費版
580.00 KB/英文/10.0
spring-3.2 核心jar包
44.50 MB/中文/10.0
sqljdbc4.jar包Java的JDBC對SQL2008的支持JAR
424.00 KB/中文/1.0
2017外交部表情包最新版
1.00 MB/中文/5.0
軟件介紹人氣軟件精品推薦相關(guān)文章網(wǎng)友評論下載地址
quartz2.2.1.jar是一款用于java調(diào)度框架quartz最經(jīng)典好用版本2.2.1的jar包,包含了doc以及相關(guān)的jar包,可以讓編程開發(fā)人員更加優(yōu)質(zhì)便捷的進(jìn)行相關(guān)的工作,有需要的朋友就來IT貓撲下載吧!
Quartz簡介
一個完全由java編寫的開源作業(yè)調(diào)度框架。不要讓作業(yè)調(diào)度這個術(shù)語嚇著你。盡管Quartz框架整合了許多額外功能, 但就其簡易形式看,你會發(fā)現(xiàn)它易用得簡直讓人受不了!。簡單地創(chuàng)建一個實現(xiàn)org.quartz.Job接口的java類。Job接口包含唯一的方法:
public void execute(JobExecutionContext context)
throws JobExecutionException;
在你的Job接口實現(xiàn)類里面,添加一些邏輯到execute()方法。一旦你配置好Job實現(xiàn)類并設(shè)定好調(diào)度時間表,Quartz將密切注意剩余時間。當(dāng)調(diào)度程序確定該是通知你的作業(yè)的時候,Quartz框架將調(diào)用你Job實現(xiàn)類(作業(yè)類)上的execute()方法并允許做它該做的事情。無需報告任何東西給調(diào)度器或調(diào)用任何特定的東西。僅僅執(zhí)行任務(wù)和結(jié)束任務(wù)即可。如果配置你的作業(yè)在隨后再次被調(diào)用,Quartz框架將在恰當(dāng)?shù)臅r間再次調(diào)用它。
Quartz2.2.1在JAVA中的簡單用法
新建一個WebProject工程項目。注意:項目的jdk版本必須在1.6以上,才能支持Quartz2.2.1,不然會報錯,版本不支持。。
引入解壓Quartz2.2.1.zip之后所得到的6個jar包文件,這里簡單的說明一下:除了第一個jar(c3p0-0.9.1.1.jar)可以不用引入,這個jar包貌似是數(shù)據(jù)庫連接池所需要的jar包,反正暫時都沒怎么用到,不過還是建議都引入進(jìn)項目中以免報錯。因為官方下載下來就有,應(yīng)該是quartz框架集成中有用到這個jar中的某些功能,其他的都需要引入到項目中來,大家可以親自試一試,先一個一個的加到項目中,看看分別會報什么錯,
編寫任務(wù)調(diào)度工具類
package com.common;
import org.quartz.Job;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.job.TestJobOne;
import com.job.TestJobTwo;
/**
* 任務(wù)調(diào)度公共類
* @remark
* @author feizi
* @time 2015-3-23下午3:04:12
*/
public class QuartzUtil {
private final static String JOB_GROUP_NAME = "QUARTZ_JOBGROUP_NAME";//任務(wù)組
private final static String TRIGGER_GROUP_NAME = "QUARTZ_TRIGGERGROUP_NAME";//觸發(fā)器組
private static Logger log = LoggerFactory.getLogger(QuartzUtil.class);//日志
/**
* 添加任務(wù)的方法
* @param jobName ?任務(wù)名
* @param triggerName ?觸發(fā)器名
* @param jobClass ?執(zhí)行任務(wù)的類
* @param seconds ?間隔時間
* @throws SchedulerException
*/
public static void addJob(String jobName,String triggerName,Class jobClass,int seconds) throws SchedulerException{
log.info("==================initialization=================");
//創(chuàng)建一個SchedulerFactory工廠實例
SchedulerFactory sf = new StdSchedulerFactory();
//通過SchedulerFactory構(gòu)建Scheduler對象
Scheduler sche = sf.getScheduler();
log.info("===================initialize finshed===================");
log.info("==============add the Job to Scheduler==================");
//用于描敘Job實現(xiàn)類及其他的一些靜態(tài)信息,構(gòu)建一個作業(yè)實例
JobDetail jobDetail = JobBuilder.newJob(jobClass)
.withIdentity(jobName, JOB_GROUP_NAME)
.build();
//構(gòu)建一個觸發(fā)器,規(guī)定觸發(fā)的規(guī)則
Trigger trigger = TriggerBuilder.newTrigger()//創(chuàng)建一個新的TriggerBuilder來規(guī)范一個觸發(fā)器
.withIdentity(triggerName, TRIGGER_GROUP_NAME)//給觸發(fā)器起一個名字和組名
.startNow()//立即執(zhí)行
.withSchedule(
SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(seconds)//時間間隔 ?單位:秒
.repeatForever()//一直執(zhí)行
)
.build();//產(chǎn)生觸發(fā)器
//向Scheduler中添加job任務(wù)和trigger觸發(fā)器
sche.scheduleJob(jobDetail, trigger);
//啟動
sche.start();
}
/**
* 測試
* @param args
*/
public static void main(String[] args) {
try {
//添加第一個任務(wù) ?每隔10秒執(zhí)行一次
QuartzUtil.addJob("job1", "trigger1", TestJobOne.class, 2);
//添加第二個任務(wù) ?每隔20秒執(zhí)行一次
QuartzUtil.addJob("Job2", "trigger2", TestJobTwo.class, 5);
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
編寫實際任務(wù)執(zhí)行類,執(zhí)行實際的業(yè)務(wù)操作
任務(wù)一
package com.job;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* 實際執(zhí)行任務(wù)的業(yè)務(wù)類,需要實現(xiàn)Job接口
* @remark
* @author feizi
* @time 2015-3-23下午2:48:57
*/
public class TestJobOne implements Job {
/**
* 執(zhí)行任務(wù)的方法
*/
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("================執(zhí)行任務(wù)一....");
//do more...這里可以執(zhí)行其他需要執(zhí)行的任務(wù)
}
}
任務(wù)二
package com.job;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* 實際執(zhí)行任務(wù)的業(yè)務(wù)類,需要實現(xiàn)Job接口
* @remark
* @author feizi
* @time 2015-3-23下午2:49:46
*/
public class TestJobTwo implements Job {
/**
* 執(zhí)行任務(wù)的方法
*/
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("================執(zhí)行任務(wù)二....");
//do more...這里可以執(zhí)行其他需要執(zhí)行的任務(wù)
}
}
在任務(wù)調(diào)度工具類QuartzUtil中寫個main方法測試一下。
之后運行QuartzUtil類中的main測試方法。
上面的任務(wù)調(diào)度的入口是在main方法里面啟動的,是通過手動執(zhí)行的方式開啟任務(wù)的,但是實際的項目在運行中不可能說通過這種手動方式去調(diào)用,那么我們必須在項目中找到一個入口來啟動這個任務(wù),我這里使用的是通過在一個Servlet的初始化方法中去啟動這個任務(wù),因為根據(jù)Servlet的生命周期,在Tomcat容器啟動之后,就會去Web.xm文件中去加載Servlet,然后調(diào)用Servlet的初始化方法,并且只運行一次。
編寫Servlet類:
package com.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.quartz.SchedulerException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.common.QuartzUtil;
import com.job.TestJobOne;
import com.job.TestJobTwo;
public class InitServlet extends HttpServlet {
private static final long serialVersionUID = -5652071148837106939L;
private Logger log = LoggerFactory.getLogger(InitServlet.class);
/**
* 因為我們不需要處理請求與響應(yīng)的消息操作,所以這個地方只留一個初始化的操作就行了,用以執(zhí)行任務(wù)調(diào)度的入口
*/
public void init() throws ServletException {
log.info("==================啟動InitServlet...");
try {
//添加第一個任務(wù) ?每隔2秒執(zhí)行一次
QuartzUtil.addJob("job1", "trigger1", TestJobOne.class, 2);
//添加第二個任務(wù) ?每隔5秒執(zhí)行一次
QuartzUtil.addJob("Job2", "trigger2", TestJobTwo.class, 5);
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
在web.xml文件中注冊Servlet,這里的
0 Servlet啟動優(yōu)先級也可以不用做調(diào)整,因為這個例子里面只有一個Servlet,但是如果項目中有多個Servlet的話 可以通過設(shè)置這個值調(diào)整Servlet的啟動優(yōu)先級順序。web.xml
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
InitServlet com.servlet.InitServlet 0 InitServlet /InitServlet index.jsp 啟動Tomcat容器,查看控制臺:
更多>> 軟件截圖
推薦應(yīng)用
其他版本下載
精品推薦 jar包
- 更多 (132個) >> jar包 JAR(Java Archive,Java歸檔文件)是與平臺無關(guān)的文件格式,它允許將許多文件組合成一個壓縮文件.為J2EE應(yīng)用程序創(chuàng)建的JAR文件是EAR文件(企業(yè)JAR文件).JAR文件格式以流行的ZIP文件格式為基礎(chǔ).與ZIP文件不同的是,JAR文件不僅用于壓縮和發(fā)布,而且還
sqljdbc4.jar包 424.00 KB
/中文/1.0org.apache.poi jar包 28.65 MB
/中文/5.0spring-3.2 核心jar包 44.50 MB
/中文/10.0oracle12c jdbc jar驅(qū)動包 1.40 MB
/中文/0.0httpcore-ab-4.4.5.jar 286.00 KB
/中文/10.0httpcore4.4.4.jar包 3.00 KB
/中文/0.0jstl-1.2.jar包 378.00 KB
/中文/0.0ksoap2-android.jar 1.95 MB
/中文/0.0
相關(guān)文章
下載地址
quartz.jar(包括doc) v2.2.1 完整版
查看所有評論>> 網(wǎng)友評論
更多>> 猜你喜歡