проблема с AbstractRoutingDataSource для определенияCurrentLookupKey () с использованием локального контекста - PullRequest
0 голосов
/ 11 февраля 2020

У нас есть требование в нашем приложении spring-boot / spring-jdb c. Все заказы, готовые к отправке, находятся в общей таблице схемы. Мы получаем эти заказы в запланированном задании, и для каждого заказа мы создаем сообщение rabbitmq и отправляем его в другой микросервис и проверяем этот отправленный заказ в схеме клиента. Информация о соединении для всех клиентов находится в таблице в общей схеме. Мы использовали аналогичную реализацию AbstractROutingDataSource под названием CustomerRoutingDataSource, где мы загрузили схему подключения всех клиентов в карту targetDataSources ha sh, где ключ - это имя клиента, а значение - это его DataSource при инициализации. Мы сохраняем имя клиента в локальном контексте и пытаемся переключить источник данных для каждого клиента. Так как это запланированная задача для l oop, Threadlocal не работает должным образом. Когда мы перебираем заказы, подлежащие отправке, каждый заказ может быть разным, и для каждого заказа в oop нам нужно динамически загружать источник данных для этого клиента. Любые предложения о том, как мы можем правильно переключиться?

...