激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

香港云服务器
服務器之家 - 編程語言 - JAVA教程 - Spring整合Quartz Job以及Spring Task的實現方法

Spring整合Quartz Job以及Spring Task的實現方法

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

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

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

1、Spring整合Quartz Job

2、Spring 3.0以后自帶的Task

一、兩種定時任務的實現方式

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的觸發器分兩種 -->
  <!-- 第一種SimpleTriggerFactoryBean只支持按照一定頻度調用任務,如每隔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表達式可以自定義方式執行 -->
  <bean id="exampleTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    <property name="jobDetail" ref="exampleJobMethod"/>
    <property name="cronExpression" value="0/10 * * * * ?"/>
  </bean>
  <!-- 配置調度工廠 -->
  <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"/>

二、比較一下兩者的優缺點

Quartz Job特點

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

2、Quartz每次執行都創建一個新的任務對象

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

Spring Task 特點

1、使用@Scheduled注解及少量配置實現,使用簡單

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

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

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

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

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

延伸 · 閱讀

精彩推薦
612
主站蜘蛛池模板: 精品国产乱码久久久久久久 | 久久精品中文字幕 | 久久综合久久综合久久 | 日韩三级伦理在线观看 | 欧美大穴 | 亚洲成人激情在线 | 黄色特级一级片 | 9999久久久久久 | 国产精品1区2区 | 亚洲精品永久视频 | 久在线观看福利视频69 | 久久久www免费看片 亚洲综合视频一区 | 九九综合九九 | 成人在线精品视频 | 一本一本久久a久久精品综合小说 | 免费黄色在线观看网站 | 亚洲情视频 | 中国大陆一级毛片 | 久久艹综合 | 成人在线观看免费高清 | 成人在线观看污 | 国产精品久久久久久久久久大牛 | 亚洲婷婷日日综合婷婷噜噜噜 | www.精品视频 | 亚洲第一色片 | 色视频91 | 精品一区二区免费视频视频 | 制服丝袜成人动漫 | 99精品视频在线观看免费播放 | 一区二区三区日韩精品 | 蜜桃一本色道久久综合亚洲精品冫 | 久久久一区二区三区四区 | 国产亚洲自拍一区 | 男女无遮挡羞羞视频 | 国产成人av免费观看 | 青青久热 | 国产一区影院 | 国产精品久久久久免费视频 | 13一14毛片免费看 | 国产18视频 | 看中国一级毛片 |