2015-05-23 2 views
0

Мой маршрут выглядит так:Camel Id Тема меняется при вызове HTTP компонент

from(rabbitmq). 
to(redisLockerProcessor). 
to(processor1). 
to(ahc://http:).to(processor2) 
.to(redisLockReleaseProcessor) 

Я использую библиотеку Redisson, которая хранит идентификатор потока, который взял замок в Redis. Но в redisLockReleaseProcessor он бросает исключение, которое thread id is not same as thread id which took the lock. Как работает компонентный компонент на верблюде? Я, хотя весь маршрут работает в одном потоке. Как мы можем решить проблему redis здесь, если весь маршрут не работает в одном потоке?

ответ

0

Компонент camel-ahc использует неблокирующий вызов, поэтому поток может быть изменен в вашем маршруте верблюда. Вы можете рассмотреть возможность хранения идентификатора потока как свойства обмена (вы можете использовать его для выпуска redisLock в redisLockReleaseProcessor) или использовать другой компонент http-верблюда, такой как camel-http, который использует блок API для отправки запроса.

+0

Да, используется http4, и сейчас он отлично работает. – dejavu

Смежные вопросы