我想了解在Camel处理器上实现同步的方法。
唯一找到的相关信息在文档中:
请注意,使用ActiveMQ、JMS或SEDA时,并没有并发或锁定问题;它们旨在用于高度并发的应用程序。然而,处理器可能存在并发问题,即处理器对消息的处理过程会出现问题。
如果我想在org.apache.camel.Processor.process(Exchange)上获取锁,例如,当该方法繁忙时,我希望其他线程等待process方法完成。这是否可能?
更新:实际上,我尝试在process方法内部使用同步(锁)-这在JVM端有效。但是我的处理器是事务路由的一部分,这是一个问题-只有在退出处理器(甚至可能是路由)后,所有对持久层的更改才会变得可见。因此,我认为这个问题还有一些类似于Camel的解决方案。
唯一找到的相关信息在文档中:
请注意,使用ActiveMQ、JMS或SEDA时,并没有并发或锁定问题;它们旨在用于高度并发的应用程序。然而,处理器可能存在并发问题,即处理器对消息的处理过程会出现问题。
如果我想在org.apache.camel.Processor.process(Exchange)上获取锁,例如,当该方法繁忙时,我希望其他线程等待process方法完成。这是否可能?
更新:实际上,我尝试在process方法内部使用同步(锁)-这在JVM端有效。但是我的处理器是事务路由的一部分,这是一个问题-只有在退出处理器(甚至可能是路由)后,所有对持久层的更改才会变得可见。因此,我认为这个问题还有一些类似于Camel的解决方案。