Получение нулевого значения TransportContext в WorkManagerTaskExecutor
Я пытаюсь получить TransportContext
(из TransportContextHolder.getTransportContext();)
Который может получить контекст, соединение и HttpServletRequest в обычном потоке.
Но у меня есть сценарий, где я создаю параллельный вызов с использованием Spring WorkManagerTaskExecutor). В новом потоке я пытаюсь получить Spring TransportContext, который возвращает null.
Может кто-нибудь помочь, как получить TransportContext в концепции WorkManagerTaskExecutor.
1 ответ
Вы не можете передать Транспортный контекст в задачу, которую вы выполняете с помощью WorkManagerTaskExecutor.
executor.execute(new Task(TransportContextHolder.getTransportContext()){
//here constructor and property to store context
});
Но это не очень хороший подход. Данные, полученные из транспортного контекста в другом потоке, могут быть недействительными, и вы не должны выполнять никаких операций отправки. Если вам нужна транспортная информация во время выполнения задачи, просто прочитайте ее в исходном потоке и перейдите к задаче, как описано выше. Отправка данных из другого потока не может работать правильно.