2015-11-25 10 views
0

Am пытается получить TransportContextполучение TransportContext нуль в WorkManagerTaskExecutor

(от TransportContextHolder.getTransportContext();)

Что может получить контекст, связь и HttpServletRequest в нормальном потоке.

Но у меня есть сценарий, когда я создаю параллельный вызов с помощью Spring WorkManagerTaskExecutor). В новом потоке я пытаюсь получить Spring TransportContext, который возвращает null.

Может кто-нибудь помочь, как получить TransportContext в концепции WorkManagerTaskExecutor.

ответ

0

Вы не можете передать контекст транспорта в задачу, выполняемую WorkManagerTaskExecutor.

executor.execute(new Task(TransportContextHolder.getTransportContext()){ 
    //here constructor and property to store context 
}); 

Но это нехороший подход. Данные, полученные из транспортного контекста в другом потоке, могут быть недействительными, и вы не должны выполнять какие-либо операции отправки. Если вам нужна информация о транспорте во время выполнения задачи, просто прочитайте ее в исходном потоке и перейдите к задаче, как описано выше. Отправка данных из другого потока не помогла.