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,7 +12,10 @@
12 <packaging>jar</packaging> 12 <packaging>jar</packaging>
13 13
14 <name>${artifactId}</name> 14 <name>${artifactId}</name>
15 - <description>定时任务,基于 Quartz 拓展</description> 15 + <description>任务拓展
  16 + 1. 定时任务,基于 Quartz 拓展
  17 + 2. 异步任务,基于 Spring Async 拓展
  18 + </description>
16 <url>https://github.com/YunaiV/ruoyi-vue-pro</url> 19 <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
17 20
18 <dependencies> 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 +6,9 @@ import org.springframework.context.annotation.Bean;
6 import org.springframework.context.annotation.Configuration; 6 import org.springframework.context.annotation.Configuration;
7 import org.springframework.scheduling.annotation.EnableScheduling; 7 import org.springframework.scheduling.annotation.EnableScheduling;
8 8
  9 +/**
  10 + * 定时任务 Configuration
  11 + */
9 @Configuration 12 @Configuration
10 @EnableScheduling // 开启 Spring 自带的定时任务 13 @EnableScheduling // 开启 Spring 自带的定时任务
11 public class YudaoQuartzAutoConfiguration { 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 * 考虑到高可用,使用 Quartz 自带的 MySQL 集群方案。 3 * 考虑到高可用,使用 Quartz 自带的 MySQL 集群方案。
  4 + *
  5 + * 2. 异步任务,采用 Spring Async 异步执行。
4 */ 6 */
5 package cn.iocoder.yudao.framework.quartz; 7 package cn.iocoder.yudao.framework.quartz;
yudao-framework/yudao-spring-boot-starter-job/src/main/resources/META-INF/spring.factories
1 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 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>