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

Spring實現Quartz自動配置的方法詳解

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

1. 開啟Quartz自動配置

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

在這里插入圖片描述

首先通過QuartzAutoConfiguration自動配置類可以看到,要實現Quartz自動配置,需要存在三個類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 因此需要確保這三個Jar包在pom文件中存在。

在這里插入圖片描述

Quartz的坐標示例:

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

2. Quartz自動配置的實現過程

2.1 核心類圖

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

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

在這里插入圖片描述

2.2 核心方法

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

在這里插入圖片描述

3. 任務調度執(zhí)行

3.1 大致流程

任務調度的大致流程:

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

在這里插入圖片描述

3.2 調整線程池的大小

線程池的默認大小為10,可以通過配置文件調整默認線程池的大小

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

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

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

相關文章

最新評論