¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.framework.config; |
| | | |
| | | import com.ruoyi.common.exception.CustomException; |
| | | import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.scheduling.annotation.AsyncConfigurerSupport; |
| | | import org.springframework.scheduling.annotation.EnableAsync; |
| | | import org.springframework.security.concurrent.DelegatingSecurityContextExecutorService; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.concurrent.Executor; |
| | | import java.util.concurrent.Executors; |
| | | |
| | | @EnableAsync |
| | | @Configuration |
| | | public class AsyncConfig extends AsyncConfigurerSupport { |
| | | |
| | | /** |
| | | * 弿¥æ§è¡éè¦ä½¿ç¨æéæ¡æ¶èªå¸¦çå
è£
çº¿ç¨æ± ä¿è¯æéä¿¡æ¯çä¼ é |
| | | */ |
| | | @Override |
| | | public Executor getAsyncExecutor() { |
| | | return new DelegatingSecurityContextExecutorService( |
| | | Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors())); |
| | | } |
| | | |
| | | /** |
| | | * 弿¥æ§è¡å¼å¸¸å¤ç |
| | | */ |
| | | @Override |
| | | public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() { |
| | | return (throwable, method, objects) -> { |
| | | throwable.printStackTrace(); |
| | | throw new CustomException( |
| | | "Exception message - " + throwable.getMessage() |
| | | + ", Method name - " + method.getName() |
| | | + ", Parameter value - " + Arrays.toString(objects)); |
| | | }; |
| | | } |
| | | |
| | | } |