Commit ade55d89a477563349c4149059af191a8cb70ae9

Authored by YunaiV
1 parent cc78025f

多租户,接入 Spring Async 机制

yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/framework/async/config/AsyncConfiguration.java deleted
1   -package cn.iocoder.yudao.adminserver.framework.async.config;
2   -
3   -import org.springframework.context.annotation.Configuration;
4   -import org.springframework.scheduling.annotation.EnableAsync;
5   -
6   -@Configuration
7   -@EnableAsync
8   -public class AsyncConfiguration {
9   -}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/framework/async/package-info.java deleted
1   -/**
2   - * 异步执行,基于 Spring @Async 实现
3   - */
4   -package cn.iocoder.yudao.adminserver.framework.async;
yudao-framework/yudao-spring-boot-starter-job/pom.xml
... ... @@ -12,7 +12,10 @@
12 12 <packaging>jar</packaging>
13 13  
14 14 <name>${artifactId}</name>
15   - <description>定时任务,基于 Quartz 拓展</description>
  15 + <description>任务拓展
  16 + 1. 定时任务,基于 Quartz 拓展
  17 + 2. 异步任务,基于 Spring Async 拓展
  18 + </description>
16 19 <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
17 20  
18 21 <dependencies>
... ...
yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/config/YudaoAsyncAutoConfiguration.java 0 → 100644
  1 +package cn.iocoder.yudao.framework.quartz.config;
  2 +
  3 +import com.alibaba.ttl.TtlRunnable;
  4 +import org.springframework.beans.BeansException;
  5 +import org.springframework.beans.factory.config.BeanPostProcessor;
  6 +import org.springframework.context.annotation.Bean;
  7 +import org.springframework.context.annotation.Configuration;
  8 +import org.springframework.scheduling.annotation.EnableAsync;
  9 +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
  10 +
  11 +/**
  12 + * 异步任务 Configuration
  13 + */
  14 +@Configuration
  15 +@EnableAsync
  16 +public class YudaoAsyncAutoConfiguration {
  17 +
  18 + @Bean
  19 + public BeanPostProcessor threadPoolTaskExecutorBeanPostProcessor() {
  20 + return new BeanPostProcessor() {
  21 +
  22 + @Override
  23 + public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
  24 + if (!(bean instanceof ThreadPoolTaskExecutor)) {
  25 + return bean;
  26 + }
  27 + // 修改提交的任务,接入 TransmittableThreadLocal
  28 + ThreadPoolTaskExecutor executor = (ThreadPoolTaskExecutor) bean;
  29 + executor.setTaskDecorator(TtlRunnable::get);
  30 + return executor;
  31 + }
  32 +
  33 + };
  34 + }
  35 +
  36 +}
... ...
yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/config/YudaoQuartzAutoConfiguration.java
... ... @@ -6,6 +6,9 @@ import org.springframework.context.annotation.Bean;
6 6 import org.springframework.context.annotation.Configuration;
7 7 import org.springframework.scheduling.annotation.EnableScheduling;
8 8  
  9 +/**
  10 + * 定时任务 Configuration
  11 + */
9 12 @Configuration
10 13 @EnableScheduling // 开启 Spring 自带的定时任务
11 14 public class YudaoQuartzAutoConfiguration {
... ...
yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/package-info.java
1 1 /**
2   - * 定时任务,采用 Quartz 实现进程内的任务执行。
  2 + * 1. 定时任务,采用 Quartz 实现进程内的任务执行。
3 3 * 考虑到高可用,使用 Quartz 自带的 MySQL 集群方案。
  4 + *
  5 + * 2. 异步任务,采用 Spring Async 异步执行。
4 6 */
5 7 package cn.iocoder.yudao.framework.quartz;
... ...
yudao-framework/yudao-spring-boot-starter-job/src/main/resources/META-INF/spring.factories
1 1 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2   - cn.iocoder.yudao.framework.quartz.config.YudaoQuartzAutoConfiguration
  2 + cn.iocoder.yudao.framework.quartz.config.YudaoQuartzAutoConfiguration,\
  3 + cn.iocoder.yudao.framework.quartz.config.YudaoAsyncAutoConfiguration
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/framework/async/《芋道 Spring Boot 异步任务入门》.md renamed to yudao-framework/yudao-spring-boot-starter-job/《芋道 Spring Boot 异步任务入门》.md
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/framework/async/config/AsyncConfiguration.java deleted
1   -package cn.iocoder.yudao.userserver.framework.async.config;
2   -
3   -import org.springframework.context.annotation.Configuration;
4   -import org.springframework.scheduling.annotation.EnableAsync;
5   -
6   -@Configuration
7   -@EnableAsync
8   -public class AsyncConfiguration {
9   -}
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/framework/async/package-info.java deleted
1   -/**
2   - * 异步执行,基于 Spring @Async 实现
3   - */
4   -package cn.iocoder.yudao.userserver.framework.async;
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/framework/async/《芋道 Spring Boot 异步任务入门》.md deleted
1   -<http://www.iocoder.cn/Spring-Boot/Async-Job/?yudao>