From ec2bd151a3220b34eb7e33d43d25908b45ff349c Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期一, 24 二月 2025 17:59:08 +0800
Subject: [PATCH] sql记录

---
 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..fd5561b 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,12 @@
 
 
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import com.ltkj.db.DataSourceContextHolder;
+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;
 
@@ -19,12 +24,36 @@
 @Slf4j
 public class ThreadPoolConfiguration {
 
+    private static final Logger logger = LoggerFactory.getLogger(ThreadPoolConfiguration.class);
+
     @Bean(name = "async", destroyMethod = "shutdown")
     public ThreadPoolExecutor systemCheckPoolExecutorService() {
+        // 鑾峰彇褰撳墠绾跨▼鐨� DataSource
+        String currentDataSource = DataSourceContextHolder.getDataSourceKey();
+        logger.info("褰撳墠绾跨▼鏁版嵁婧�: {}", currentDataSource);
 
         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) -> log.error("system pool is full! ")) {
+
+            @Override
+            public void execute(Runnable command) {
+                // 鍖呰浠诲姟锛岀‘淇濇暟鎹簮琚紶閫掑埌鏂扮嚎绋�
+                super.execute(() -> {
+                    String dataSourceKey = DataSourceContextHolder.getDataSourceKey();
+                    try {
+                        // 浼犻�掓暟鎹簮鍒板瓙绾跨▼
+                        DynamicDataSourceContextHolder.setDataSourceType(dataSourceKey);
+                        command.run(); // 鎵ц浠诲姟
+                    } finally {
+                        // 浠诲姟瀹屾垚鍚庢竻鐞嗘暟鎹簮涓婁笅鏂�
+                        DynamicDataSourceContextHolder.clearDataSourceType();
+                    }
+                });
+            }
+        };
     }
-}
\ No newline at end of file
+}
+
+

--
Gitblit v1.8.0