一、该问题的重现步骤是什么?
1. 系统改造成多数据源,定时任务xxljob该怎么处理,业务数据都在多个数据库
2. 系统改造成多数据源,有些方法中可能在是这个租户的操作会给另一个指定的租户业务表中新增数据该怎么处理,方法跨多租户数据源交互
3.
二、你期待的结果是什么?实际看到的又是什么?
能在方法中随时切换到其他租户,如同一个方法中,这两个sql在000000住执行,后两个sql可以指定在另一个租户的数据库中执行
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
springcloud
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
public R<XxInfo> getInfo(Long id) {
// 获取租户Id,也可以手动指定
String tenantId = AuthUtil.getTenantId();
try {
// 切换指定数据源
DynamicDataSourceContextHolder.push(tenantId);
return R.data(xxxxx);
} finally {
// 释放指定数据源
DynamicDataSourceContextHolder.poll();
}
}
首先需要提前创建好租户数据源的配置,然后代码里就可以通过 DynamicDataSourceContextHolder 来进行代码层级的手动切换数据库。
扫一扫访问 Blade技术社区 移动端