欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring實(shí)現(xiàn)Quartz自動配置的方法詳解

 更新時(shí)間:2023年11月13日 09:25:25   作者:阿湯哥  
這篇文章主要介紹了Spring實(shí)現(xiàn)Quartz自動配置的方法詳解,如果想在應(yīng)用中使用Quartz任務(wù)調(diào)度功能,可以通過Spring Boot實(shí)現(xiàn)Quartz的自動配置,以下介紹如何開啟Quartz自動配置,以及Quartz自動配置的實(shí)現(xiàn)過程,需要的朋友可以參考下

1. 開啟Quartz自動配置

QuartzAutoConfiguration自動為Quartz的自動配置類,它的創(chuàng)建了SchedulerFactoryBean。

在這里插入圖片描述

首先通過QuartzAutoConfiguration自動配置類可以看到,要實(shí)現(xiàn)Quartz自動配置,需要存在三個(gè)類Scheduler.class, SchedulerFactoryBean.class, PlatformTransactionManager.class,其中

  • Scheduler所在包quartz-2.3.0.jar
  • SchedulerFactoryBean所在包spring-context-support-5.2.10.RELEASE.jar
  • PlatformTransactionManager所在包spring-tx-5.2.10.RELEASE.jar 因此需要確保這三個(gè)Jar包在pom文件中存在。

在這里插入圖片描述

Quartz的坐標(biāo)示例:

<dependency>
  <groupId>org.quartz-scheduler</groupId>
  <artifactId>quartz</artifactId>
  <version>2.3.0</version>
</dependency>

2. Quartz自動配置的實(shí)現(xiàn)過程

2.1 核心類圖

下圖展示了Quartz的核心類圖,其中

  • Scheduler是Quartz調(diào)度器的主接口;
  • SchedulerFactory是調(diào)度器工廠接口,用戶獲取調(diào)度器實(shí)例;
  • StdScheduler是Scheduler的一個(gè)實(shí)現(xiàn)類,同時(shí)也是一個(gè)代理類,它會將所有的方法調(diào)用直接傳遞給內(nèi)部的QuartzScheduler對象;RemoteScheduler是Scheduler的另一個(gè)實(shí)現(xiàn)類,同時(shí)也是一個(gè)代理類,它會將所有的方法調(diào)用通過RMI傳遞給遠(yuǎn)程的QuartzScheduler對象;
  • StdSchedulerFactory是SchedulerFactory的實(shí)現(xiàn)類,它會創(chuàng)建QuartzScheduler對象,并返回其代理對象StdScheduler;
  • QuartzSchedulerResources包含所有的資源,包括JobStore、線程池信息等;
  • QuartzSchedulerThread是觸發(fā)和執(zhí)行任務(wù)的主線程;

在這里插入圖片描述

2.2 核心方法

  • 準(zhǔn)備SchedulerFactory -> StdSchedulerFactory
  • 準(zhǔn)備Scheduler -> StdScheduler
  • 注冊監(jiān)聽器
  • 注冊任務(wù)和觸發(fā)器

在這里插入圖片描述

3. 任務(wù)調(diào)度執(zhí)行

3.1 大致流程

任務(wù)調(diào)度的大致流程:

  • 如果線程池有可用線程,獲取待執(zhí)行Trigger;
  • 獲取觸發(fā)器Trigger的觸發(fā)任務(wù),構(gòu)造JobRunShell;
  • 放入線程池執(zhí)行任務(wù),默認(rèn)使用線程池實(shí)現(xiàn) org.quartz.simpl.SimpleThreadPool;

在這里插入圖片描述

3.2 調(diào)整線程池的大小

線程池的默認(rèn)大小為10,可以通過配置文件調(diào)整默認(rèn)線程池的大小

spring:
  quartz:
    properties:
      org:
        quartz:
          threadPool:
            threadCount: 15

本文從如何開啟Quartz自動配置入手,介紹了自動配置的核心類和自動配置的實(shí)現(xiàn)過程,以及任務(wù)調(diào)度的大致執(zhí)行邏輯,最后介紹了如何通過Spring配置調(diào)整線程池的大小,希望對大家有所幫助。

到此這篇關(guān)于Spring實(shí)現(xiàn)Quartz自動配置的方法詳解的文章就介紹到這了,更多相關(guān)Spring實(shí)現(xiàn)Quartz自動配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論