From dc3cb5dea834cde14d1b527c22b35f1d5faebd5a Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期六, 15 二月 2025 19:26:55 +0800
Subject: [PATCH] zjh20250215

---
 ltkj-admin/src/main/java/com/ltkj/web/config/timer/ThreadPoolConfiguration.java |   35 ++++++++++++++++++++++++++++++++---
 1 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/config/timer/ThreadPoolConfiguration.java b/ltkj-admin/src/main/java/com/ltkj/web/config/timer/ThreadPoolConfiguration.java
index 5a6b099..396b908 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/config/timer/ThreadPoolConfiguration.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/config/timer/ThreadPoolConfiguration.java
@@ -2,7 +2,11 @@
 
 
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import com.ltkj.framework.aspectj.AsynAspect;
+import com.ltkj.framework.datasource.DynamicDataSourceContextHolder;
 import lombok.extern.slf4j.Slf4j;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -18,13 +22,38 @@
 @Configuration
 @Slf4j
 public class ThreadPoolConfiguration {
+    private static final Logger logger = LoggerFactory.getLogger(AsynAspect.class);
 
     @Bean(name = "async", destroyMethod = "shutdown")
     public ThreadPoolExecutor systemCheckPoolExecutorService() {
+        // 鑾峰彇褰撳墠绾跨▼鐨勬暟鎹簮
+        String dataSource = DynamicDataSourceContextHolder.getDataSourceType();
+        logger.info("寮傛浼犻�掔嚎绋嬪綋鍓嶇嚎绋嬫暟鎹簮: {}", dataSource);
 
         return new ThreadPoolExecutor(3, 10, 60, TimeUnit.SECONDS,
-                new LinkedBlockingQueue<Runnable>(10000),
+                new LinkedBlockingQueue<>(10000),
                 new ThreadFactoryBuilder().setNameFormat("default-executor-%d").build(),
-                (r, executor) -> log.error("system pool is full! "));
+                (r, executor) -> logger.error("system pool is full! ")) {
+
+            @Override
+            public void execute(Runnable task) {
+                // 鍖呰浠诲姟锛屽皢鏁版嵁婧愪紶閫掑埌寮傛绾跨▼
+                super.execute(new Runnable() {
+                    @Override
+                    public void run() {
+                        // 鍦ㄥ紓姝ョ嚎绋嬩腑璁剧疆鏁版嵁婧�
+                        String dataSource = DynamicDataSourceContextHolder.getDataSourceType();
+                        try {
+                            DynamicDataSourceContextHolder.setDataSourceType(dataSource);
+                            task.run();
+                        } finally {
+                            // 纭繚鍦ㄤ换鍔℃墽琛屽畬鎴愬悗娓呯悊鏁版嵁婧�
+                            DynamicDataSourceContextHolder.clearDataSourceType();
+                        }
+                    }
+                });
+            }
+        };
     }
-}
\ No newline at end of file
+
+}

--
Gitblit v1.8.0