最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Spring中Quartz調(diào)度器詳解及實(shí)例

 更新時(shí)間:2017年02月20日 15:19:27   投稿:lqh  
這篇文章主要介紹了Java Spring中Quartz調(diào)度器詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下

一、Quartz的特點(diǎn)

* 按作業(yè)類(lèi)的繼承方式來(lái)分,主要有以下兩種:

1.作業(yè)類(lèi)繼承org.springframework.scheduling.quartz.QuartzJobBean類(lèi)的方式

2.作業(yè)類(lèi)不繼承org.springframework.scheduling.quartz.QuartzJobBean類(lèi)的方式

注:個(gè)人比較推崇第二種,因?yàn)檫@種方式下的作業(yè)類(lèi)仍然是POJO。

* 按任務(wù)調(diào)度的觸發(fā)時(shí)機(jī)來(lái)分,主要有以下兩種:

1.每隔指定時(shí)間則觸發(fā)一次,對(duì)應(yīng)的調(diào)度器為org.springframework.scheduling.quartz.SimpleTriggerBean

2.每到指定時(shí)間則觸發(fā)一次,對(duì)應(yīng)的調(diào)度器為org.springframework.scheduling.quartz.CronTriggerBean

注:這兩種觸發(fā)方式均可以跟兩種作業(yè)繼承方式相互組合來(lái)使用。

下面簡(jiǎn)單演示一下在spring對(duì)Quartz的用法。

二、作業(yè)類(lèi)繼承org.springframework.scheduling.quartz.QuartzJobBean類(lèi),每到指定時(shí)間則觸發(fā)一次

1.編寫(xiě)作業(yè)類(lèi)

package bean.jobDetailBean; 
 
import org.quartz.JobExecutionContext; 
import org.quartz.JobExecutionException; 
import org.springframework.scheduling.quartz.QuartzJobBean; 
 
public class Job1 extends QuartzJobBean { 
 
private int timeout; 
private static int i = 0; 
 
//調(diào)度工廠實(shí)例化后,經(jīng)過(guò)timeout時(shí)間開(kāi)始執(zhí)行調(diào)度 
public void setTimeout(int timeout) { 
 this.timeout = timeout; 
} 
 
/** 
* 要調(diào)度的具體任務(wù) 
*/ 
@Override 
protected void executeInternal(JobExecutionContext context) 
throws JobExecutionException { 
 
 System.out.println("繼承QuartzJobBean的方式-調(diào)度" + ++i + "進(jìn)行中..."); 
 } 
} 

2.配置作業(yè)類(lèi)

<!-- 作業(yè)使用繼承QuartzJobBean的方式 --> 
<bean name="job1" class="org.springframework.scheduling.quartz.JobDetailBean"> 
<property name="jobClass" value="bean.jobDetailBean.Job1" /> 
<property name="jobDataAsMap"> 
<map> 
<entry key="timeout" value="0" /> 
</map> 
</property> 
</bean> 

3.配置作業(yè)調(diào)度的觸發(fā)方式

<!-- 對(duì)應(yīng)于作業(yè)繼QuartzJobBean類(lèi)的方式 --> 
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
<property name="jobDetail" ref="job1" /> 
 
<!-- 
"cronExpression"的配置說(shuō)明 
 
字段 允許值 允許的特殊字符 
秒 0-59 , - * / 
分 0-59 , - * / 
小時(shí) 0-23 , - * / 
日期 1-31 , - * ? / L W C 
月份 1-12 或者 JAN-DEC , - * / 
星期 1-7 或者 SUN-SAT , - * ? / L C # 
年(可選) 留空, 1970-2099 , - * / 
 
- 區(qū)間 
* 通配符 
? 你不想設(shè)置那個(gè)字段 
--> 
 
<!-- 每分鐘的第0,10,20,30,40,50秒調(diào)度一次 --> 
<property name="cronExpression" value="0,10,20,30,40,50 * * * * ?" /> 
</bean> 

4.配置調(diào)度工廠

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
<property name="triggers"> 
<list> 
<ref bean="cronTrigger" /> 
</list> 
</property> 
</bean> 

5.開(kāi)啟調(diào)度

package test; 
 
import org.springframework.beans.factory.BeanFactory; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
 
public class ScheduleTest { 
 
public static void main(String[] args){ 
<span style="white-space:pre"> </span>BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext*.xml"); 
 } 
} 

三、作業(yè)類(lèi)不繼承org.springframework.scheduling.quartz.QuartzJobBean類(lèi),每隔指定時(shí)間則觸發(fā)一次

1.編寫(xiě)作業(yè)類(lèi)

package bean.jobDetailBean; 
 
public class Job2 { 
 
private static int i = 0; 
 
public void doJob2() { 
 System.out.println("不繼承QuartzJobBean方式-調(diào)度" + ++i + "進(jìn)行中..."); 
 } 
} 

2.配置作業(yè)類(lèi)

<bean id="job2" 
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
<property name="targetObject"> 
<bean class="bean.jobDetailBean.Job2" /> 
</property> 
<property name="targetMethod" value="doJob2" /> 
<property name="concurrent" value="false" /><!-- 作業(yè)不并發(fā)調(diào)度 --> 
</bean> 

3.配置作業(yè)調(diào)度的觸發(fā)方式

<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> 
<property name="jobDetail" ref="job2" /> 
<property name="startDelay" value="0" /><!-- 調(diào)度工廠實(shí)例化后,經(jīng)過(guò)0秒開(kāi)始執(zhí)行調(diào)度 --> 
<property name="repeatInterval" value="2000" /><!-- 每2秒調(diào)度一次 --> 
</bean> 

4.配置調(diào)度工廠

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
<property name="triggers"> 
<list> 
<ref bean="simpleTrigger" /> 
</list> 
</property> 
</bean> 

5.開(kāi)啟調(diào)度

package test; 
 
import org.springframework.beans.factory.BeanFactory; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
 
public class ScheduleTest { 
 
public static void main(String[] args){ 
 
 BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext*.xml"); 
 } 
} 

簡(jiǎn)單說(shuō)明spring自帶調(diào)度器的例子。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • idea快速搭建springboot項(xiàng)目的操作方法

    idea快速搭建springboot項(xiàng)目的操作方法

    下面小編就為大家分享一篇idea快速搭建springboot項(xiàng)目的操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Spring實(shí)戰(zhàn)之使用Expression接口進(jìn)行表達(dá)式求值操作示例

    Spring實(shí)戰(zhàn)之使用Expression接口進(jìn)行表達(dá)式求值操作示例

    這篇文章主要介紹了Spring實(shí)戰(zhàn)之使用Expression接口進(jìn)行表達(dá)式求值操作,結(jié)合實(shí)例形式分析了Spring操作Expression接口實(shí)現(xiàn)表達(dá)式運(yùn)算的操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • Java中JDBC實(shí)現(xiàn)動(dòng)態(tài)查詢(xún)的實(shí)例詳解

    Java中JDBC實(shí)現(xiàn)動(dòng)態(tài)查詢(xún)的實(shí)例詳解

    從多個(gè)查詢(xún)條件中隨機(jī)選擇若干個(gè)組合成一個(gè)DQL語(yǔ)句進(jìn)行查詢(xún),這一過(guò)程叫做動(dòng)態(tài)查詢(xún)。下面通過(guò)實(shí)例代碼給大家講解JDBC實(shí)現(xiàn)動(dòng)態(tài)查詢(xún)的方法,需要的朋友參考下吧
    2017-07-07
  • Java中的Scanner、BufferedReader?和?StreamTokenizer使用詳解

    Java中的Scanner、BufferedReader?和?StreamTokenizer使用詳解

    Scanner是Java?中一個(gè)用于解析原始類(lèi)型(如?int、double?等)和字符串的類(lèi),它通常從輸入流中逐個(gè)讀取數(shù)據(jù)并進(jìn)行解析,支持多種分隔符的使用,本文介紹Java中的Scanner、BufferedReader?和?StreamTokenizer的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2025-02-02
  • Java多線(xiàn)程中sleep和wait區(qū)別

    Java多線(xiàn)程中sleep和wait區(qū)別

    本文主要介紹了Java多線(xiàn)程中sleep和wait區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Java8簡(jiǎn)單了解Lambda表達(dá)式與函數(shù)式接口

    Java8簡(jiǎn)單了解Lambda表達(dá)式與函數(shù)式接口

    這篇文章主要介紹了Java8簡(jiǎn)單了解Lambda表達(dá)式與函數(shù)式接口,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • 一篇文章帶你入門(mén)java變量與類(lèi)型

    一篇文章帶你入門(mén)java變量與類(lèi)型

    這篇文章主要給大家介紹了關(guān)于Java基本知識(shí)點(diǎn)之變量和數(shù)據(jù)類(lèi)型的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • spring boot 集成 shiro 自定義密碼驗(yàn)證 自定義freemarker標(biāo)簽根據(jù)權(quán)限渲染不同頁(yè)面(推薦

    spring boot 集成 shiro 自定義密碼驗(yàn)證 自定義freemarker標(biāo)簽根據(jù)權(quán)限渲染不同頁(yè)面(推薦

    這篇文章主要介紹了spring-boot 集成 shiro 自定義密碼驗(yàn)證 自定義freemarker標(biāo)簽根據(jù)權(quán)限渲染不同頁(yè)面,需要的朋友可以參考下
    2018-12-12
  • SpringBoot測(cè)試配置屬性與web啟動(dòng)環(huán)境超詳細(xì)圖解

    SpringBoot測(cè)試配置屬性與web啟動(dòng)環(huán)境超詳細(xì)圖解

    Web開(kāi)發(fā)的核心內(nèi)容主要包括內(nèi)嵌的Servlet容器和SpringMVCSpringBoot使用起來(lái)非常簡(jiǎn)潔,大部分配置都有SpringBoot自動(dòng)裝配,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-10-10
  • SpringBoot框架整合Mybatis簡(jiǎn)單攻略

    SpringBoot框架整合Mybatis簡(jiǎn)單攻略

    這篇文章主要介紹了SpringBoot框架整合Mybatis的簡(jiǎn)單攻略,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-10-10

最新評(píng)論

巢湖市| 柳河县| 新巴尔虎右旗| 富源县| 汶川县| 横峰县| 新丰县| 林西县| 河西区| 四子王旗| 建德市| 军事| 建水县| 博罗县| 凉城县| 若尔盖县| 虎林市| 宕昌县| 响水县| 都兰县| 铜山县| 阆中市| 天祝| 舒城县| 凤凰县| 遂宁市| 镇雄县| 孝义市| 奇台县| 巴彦县| 临汾市| 金沙县| 安平县| 新龙县| 沂水县| 翁源县| 南宫市| 景泰县| 新营市| 疏附县| 武陟县|