|
|
@ -1,6 +1,7 @@ |
|
|
|
package com.logpm.trunkline.config; |
|
|
|
package com.logpm.trunkline.config; |
|
|
|
|
|
|
|
|
|
|
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; |
|
|
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.slf4j.MDC; |
|
|
|
import org.slf4j.MDC; |
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
@ -55,6 +56,8 @@ public class ExecutorConfig { |
|
|
|
public Runnable decorate(@Nonnull Runnable runnable) { |
|
|
|
public Runnable decorate(@Nonnull Runnable runnable) { |
|
|
|
RequestAttributes context = RequestContextHolder.currentRequestAttributes(); |
|
|
|
RequestAttributes context = RequestContextHolder.currentRequestAttributes(); |
|
|
|
String tenantId = AuthUtil.getTenantId(); |
|
|
|
String tenantId = AuthUtil.getTenantId(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> all = ThreadLocalUtil.getAll(); |
|
|
|
Map<String, Object> all = ThreadLocalUtil.getAll(); |
|
|
|
Map<String, String> mdcMap = MDC.getCopyOfContextMap(); |
|
|
|
Map<String, String> mdcMap = MDC.getCopyOfContextMap(); |
|
|
|
return () -> { |
|
|
|
return () -> { |
|
|
@ -64,9 +67,19 @@ public class ExecutorConfig { |
|
|
|
MDC.setContextMap(mdcMap); |
|
|
|
MDC.setContextMap(mdcMap); |
|
|
|
} |
|
|
|
} |
|
|
|
RequestContextHolder.setRequestAttributes(context); |
|
|
|
RequestContextHolder.setRequestAttributes(context); |
|
|
|
// 未当前的异步线程绑定租户ID 和切换数据源
|
|
|
|
|
|
|
|
log.info(">>>> 异步线程创建,绑定租户数据源 {}",tenantId); |
|
|
|
log.info(">>>> 异步线程创建,绑定租户数据源 {}",tenantId); |
|
|
|
|
|
|
|
if(StringUtils.isBlank(tenantId)){ |
|
|
|
|
|
|
|
//这里为null 存在问题
|
|
|
|
|
|
|
|
log.info(">>>> 异步线程创建,没有用户信息 {}",AuthUtil.getUserId()); |
|
|
|
|
|
|
|
log.info(">>>> 异步线程创建,没有用户信息 {}",AuthUtil.getUser()); |
|
|
|
|
|
|
|
log.info(">>>> 异步线程创建,没有用户信息 {}",context); |
|
|
|
|
|
|
|
DynamicDataSourceContextHolder.push("627683"); |
|
|
|
|
|
|
|
}else{ |
|
|
|
|
|
|
|
// 未当前的异步线程绑定租户ID 和切换数据源
|
|
|
|
DynamicDataSourceContextHolder.push(tenantId); |
|
|
|
DynamicDataSourceContextHolder.push(tenantId); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
runnable.run(); |
|
|
|
runnable.run(); |
|
|
|
} finally { |
|
|
|
} finally { |
|
|
|
RequestContextHolder.resetRequestAttributes(); |
|
|
|
RequestContextHolder.resetRequestAttributes(); |
|
|
|