多租户,接入 Spring Async 机制
This commit is contained in:
parent
cc78025f80
commit
ade55d89a4
|
@ -1,9 +0,0 @@
|
||||||
package cn.iocoder.yudao.adminserver.framework.async.config;
|
|
||||||
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.scheduling.annotation.EnableAsync;
|
|
||||||
|
|
||||||
@Configuration
|
|
||||||
@EnableAsync
|
|
||||||
public class AsyncConfiguration {
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
/**
|
|
||||||
* 异步执行,基于 Spring @Async 实现
|
|
||||||
*/
|
|
||||||
package cn.iocoder.yudao.adminserver.framework.async;
|
|
|
@ -12,7 +12,10 @@
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>${artifactId}</name>
|
<name>${artifactId}</name>
|
||||||
<description>定时任务,基于 Quartz 拓展</description>
|
<description>任务拓展
|
||||||
|
1. 定时任务,基于 Quartz 拓展
|
||||||
|
2. 异步任务,基于 Spring Async 拓展
|
||||||
|
</description>
|
||||||
<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
|
<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
package cn.iocoder.yudao.framework.quartz.config;
|
||||||
|
|
||||||
|
import com.alibaba.ttl.TtlRunnable;
|
||||||
|
import org.springframework.beans.BeansException;
|
||||||
|
import org.springframework.beans.factory.config.BeanPostProcessor;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.scheduling.annotation.EnableAsync;
|
||||||
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 异步任务 Configuration
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
@EnableAsync
|
||||||
|
public class YudaoAsyncAutoConfiguration {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public BeanPostProcessor threadPoolTaskExecutorBeanPostProcessor() {
|
||||||
|
return new BeanPostProcessor() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
|
||||||
|
if (!(bean instanceof ThreadPoolTaskExecutor)) {
|
||||||
|
return bean;
|
||||||
|
}
|
||||||
|
// 修改提交的任务,接入 TransmittableThreadLocal
|
||||||
|
ThreadPoolTaskExecutor executor = (ThreadPoolTaskExecutor) bean;
|
||||||
|
executor.setTaskDecorator(TtlRunnable::get);
|
||||||
|
return executor;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -6,6 +6,9 @@ import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定时任务 Configuration
|
||||||
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableScheduling // 开启 Spring 自带的定时任务
|
@EnableScheduling // 开启 Spring 自带的定时任务
|
||||||
public class YudaoQuartzAutoConfiguration {
|
public class YudaoQuartzAutoConfiguration {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
/**
|
/**
|
||||||
* 定时任务,采用 Quartz 实现进程内的任务执行。
|
* 1. 定时任务,采用 Quartz 实现进程内的任务执行。
|
||||||
* 考虑到高可用,使用 Quartz 自带的 MySQL 集群方案。
|
* 考虑到高可用,使用 Quartz 自带的 MySQL 集群方案。
|
||||||
|
*
|
||||||
|
* 2. 异步任务,采用 Spring Async 异步执行。
|
||||||
*/
|
*/
|
||||||
package cn.iocoder.yudao.framework.quartz;
|
package cn.iocoder.yudao.framework.quartz;
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||||
cn.iocoder.yudao.framework.quartz.config.YudaoQuartzAutoConfiguration
|
cn.iocoder.yudao.framework.quartz.config.YudaoQuartzAutoConfiguration,\
|
||||||
|
cn.iocoder.yudao.framework.quartz.config.YudaoAsyncAutoConfiguration
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
package cn.iocoder.yudao.userserver.framework.async.config;
|
|
||||||
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.scheduling.annotation.EnableAsync;
|
|
||||||
|
|
||||||
@Configuration
|
|
||||||
@EnableAsync
|
|
||||||
public class AsyncConfiguration {
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
/**
|
|
||||||
* 异步执行,基于 Spring @Async 实现
|
|
||||||
*/
|
|
||||||
package cn.iocoder.yudao.userserver.framework.async;
|
|
|
@ -1 +0,0 @@
|
||||||
<http://www.iocoder.cn/Spring-Boot/Async-Job/?yudao>
|
|
Loading…
Reference in New Issue