调用http组件时Camel线程ID更改

时间:2015-05-23 06:03:59

标签: java redis apache-camel

我的路线是这样的:

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

我正在使用redisson库来存储在redis中锁定的线程ID。但是在redisLockReleaseProcessor中,它会抛出thread id is not same as thread id which took the lock的异常。 http组件如何在驼峰中工作?我虽然整条路线都在同一个线程中运行。如果整个路由不在同一个线程中运行,我们如何解决redis问题呢?

1 个答案:

答案 0 :(得分:0)

camel-ahc组件正在使用非阻塞调用,因此线程可以在您的驼峰路由中进行更改。您可以考虑将线程ID存储为交换属性(您可以使用它来释放redisLockReleaseProcessor中的redisLock)或使用其他camel http组件,例如使用块API发送请求的camel-http。