| | |
| | | |
| | | import com.ruoyi.common.exception.CustomException; |
| | | import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Qualifier; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.scheduling.annotation.AsyncConfigurerSupport; |
| | | import org.springframework.scheduling.annotation.EnableAsync; |
| | |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.concurrent.Executor; |
| | | import java.util.concurrent.Executors; |
| | | import java.util.concurrent.ScheduledExecutorService; |
| | | |
| | | /** |
| | | * 异步配置 |
| | |
| | | @Configuration |
| | | public class AsyncConfig extends AsyncConfigurerSupport { |
| | | |
| | | @Autowired |
| | | @Qualifier("scheduledExecutorService") |
| | | private ScheduledExecutorService scheduledExecutorService; |
| | | |
| | | /** |
| | | * 异步执行需要使用权限框架自带的包装线程池 保证权限信息的传递 |
| | | */ |
| | | @Override |
| | | public Executor getAsyncExecutor() { |
| | | return new DelegatingSecurityContextExecutorService( |
| | | Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors())); |
| | | return new DelegatingSecurityContextExecutorService(scheduledExecutorService); |
| | | } |
| | | |
| | | /** |