Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading Spring AbstractRoutingDataSource后台线程_Multithreading_Spring - Fatal编程技术网

Multithreading Spring AbstractRoutingDataSource后台线程

Multithreading Spring AbstractRoutingDataSource后台线程,multithreading,spring,Multithreading,Spring,我们正在构建一个多租户服务器,每个租户有一个数据库/模式。 为此,我们使用Springs AbstractRoutingDataSource根据租户切换数据源 租户由servlet筛选器中url的子域确定。 此租户存储在本地线程中 在线程启动之前,所有这些都可以正常工作。 例如,当hibernate搜索重新索引时,它会启动许多线程 当其中一个线程尝试获取连接时,本地线程返回null,我无法确定租户。我使用存储租户的会话范围Springbean修复了它 请参阅示例我通过使用存储租户的会话范围Spr

我们正在构建一个多租户服务器,每个租户有一个数据库/模式。 为此,我们使用Springs AbstractRoutingDataSource根据租户切换数据源

租户由servlet筛选器中url的子域确定。 此租户存储在本地线程中

在线程启动之前,所有这些都可以正常工作。 例如,当hibernate搜索重新索引时,它会启动许多线程


当其中一个线程尝试获取连接时,本地线程返回null,我无法确定租户。

我使用存储租户的会话范围Springbean修复了它


请参阅示例

我通过使用存储租户的会话范围Springbean修复了它


有关示例,请参见。您可以将租户标识符存储在
InheritableThreadLocal
中。子线程将有权访问相同的ThreadLocal变量,因此将知道租户并使用相同的数据库。

您可以将租户标识符存储在
InheritableThreadLocal
中。子线程将有权访问相同的ThreadLocal变量,因此将知道租户并使用相同的数据库