我有一个基于camel的应用程序,它从缓存接收请求并给出回复,但在此过程中,它会更新数据库,我希望它在不同的线程中运行,有人能告诉我如何实现这一点吗,我尝试了wiretap和seda,但它不工作,任何帮助感谢。
<camel:wireTap uri="seda:tap" processorRef="updateHitCountProcessor"/>
在updatehitcountprocessor中,我编写了更新表的代码
它正在更新同一线程中的数据库(即主路由线程)

最佳答案

你必须这么做

<camel:wireTap uri="ref:updateHitCountProcessor"/>

Purror ReF属性是创建和发送新消息,而不是用于挖掘现有消息。所以你不应该用这个。
uri用于发送在单独线程中发生的消息。因此,当您将它发送到ref端点时,它将在另一个线程中执行此操作,并调用处理器。
有关详细信息,请访问Wire Tap页:http://camel.apache.org/wire-tap

关于database - 在基于 Camel 的应用程序中的不同线程中更新数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19496460/

10-12 07:40