一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - Spring整合Quartz Job以及Spring Task的實現(xiàn)方法

Spring整合Quartz Job以及Spring Task的實現(xiàn)方法

2021-03-11 14:18java的探索之旅 JAVA教程

下面小編就為大家分享一篇Spring整合Quartz Job以及Spring Task的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

Spring中常用的定時任務的主要有兩種

1、Spring整合Quartz Job

2、Spring 3.0以后自帶的Task

一、兩種定時任務的實現(xiàn)方式

Quartz job

1、首先編寫任務類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.yjf.job;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
 * @author yjf
 */
public class ExampleJob {
  private static final Logger logger = LoggerFactory.getLogger(ExampleJob.class);
 
  public void run() {
    logger.info("ExampleJob運行了");
  }
}

2、添加Spring整合Quartz的配置

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!--集成quartz job-->
  <!-- 定義任務的bean -->
  <bean id="exampleJob" class="com.yjf.job.ExampleJob"/>
  <!-- 指定bean的方法 -->
  <bean id="exampleJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <property name="targetObject" ref="exampleJob"/>
    <property name="targetMethod" value="run"/>
    <property name="concurrent" value="true"/>
  </bean>
  <!-- Quartz的觸發(fā)器分兩種 -->
  <!-- 第一種SimpleTriggerFactoryBean只支持按照一定頻度調(diào)用任務,如每隔10s一次 -->
  <!--<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">-->
    <!--<property name="jobDetail" ref="exampleJobMethod"/>-->
    <!--<property name="startDelay" value="0"/>-->
    <!--<property name="repeatInterval" value="10"/>-->
  <!--</bean>-->
  <!-- 第二種CronTriggerFactoryBean 使用cronExpression表達式可以自定義方式執(zhí)行 -->
  <bean id="exampleTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    <property name="jobDetail" ref="exampleJobMethod"/>
    <property name="cronExpression" value="0/10 * * * * ?"/>
  </bean>
  <!-- 配置調(diào)度工廠 -->
  <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
      <list>
        <ref bean="exampleTrigger"/>
      </list>
    </property>
  </bean>

Spring Task

1、編寫任務類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.yjf.job;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
 
/**
 * @author yjf44568
 */
@Component
public class SearchUserJob{
  private Logger logger = LoggerFactory.getLogger(this.getClass());
 
  @Scheduled(cron = "*/5 * * * * ?")
  public void doIt(){
    logger.info("我正在做");
  }
}

2、添加task的配置文件

 

?
1
2
3
4
5
<!-- 使用注解方式配置 -->
  <!-- 啟用task定時任務 -->
  <task:annotation-driven/>
  <!--掃描job所在的包的位置 -->
  <context:component-scan base-package="com.yjf.job"/>

二、比較一下兩者的優(yōu)缺點

Quartz Job特點

1、功能強大,但是配置略微繁瑣

2、Quartz每次執(zhí)行都創(chuàng)建一個新的任務對象

3、Quartz的某次執(zhí)行任務過程中拋出異常,不影響下一次任務的執(zhí)行,當下一次執(zhí)行時間到來時,定時器會再次執(zhí)行任務。

Spring Task 特點

1、使用@Scheduled注解及少量配置實現(xiàn),使用簡單

2、Task每次執(zhí)行使用的是同一個任務對象

3、TimerTask一旦某個任務在執(zhí)行過程中拋出異常,則整個定時器生命周期就結(jié)束,以后永遠不會再執(zhí)行該定時器任務。

目前,我個人還是使用Quartz Job較多

以上這篇Spring整合Quartz Job以及Spring Task的實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/yjf1248829553/article/details/78872636

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产资源中文字幕 | 国产一成人精品福利网站 | 大肥臀风间由美 中文字幕 大东北chinesexxxx露脸 | 波多野结衣之双方调教在线观看 | 免费日本在线 | avidolz中文版 | 国产中文视频 | 青青草亚洲 | 亚欧日韩 | 日本在线视频免费观看 | 校花被拖到野外伦小说 | 二次元美女扒开内裤露尿口 | 国内自拍视频在线观看 | 我们日本在线观看免费动漫下载 | 扒开放荡老师裙子猛烈的进入 | melody中文字幕 | 国产福利一区二区精品视频 | 国产高清不卡视频在线播放 | 久久国产主播福利在线 | 亚洲第一页综合 | 五月天国产视频 | 四虎影院免费视频 | 欧美亚洲另类综合 | 美国video| 日韩高清成人毛片不卡 | 国产精品免费看久久久香蕉 | 亚洲精品tv久久久久久久久久 | 亚洲29p| naruto堂同人本子汉化gg | 久久免费国产视频 | 夫承子液by免费阅读 | 窝窝影院午夜色在线视频 | 韩国帅男同gay网站 韩国三级在线播放 | 奇米影视在线视频8888 | chinese高中生gay男同 | 福利久草| 黑人开嫩苞 | 车上小婕子系列辣文小说 | 草草国产成人免费视频 | 麻豆婷婷 | 亚洲成人黄色网址 |