【发布时间】:2013-06-03 17:22:36
【问题描述】:
我在使用 JPA 时遇到了以下问题,但这可能更像是关于 Camel 的概念性问题。
我需要一个基于 cron 的 Quartz 消费者。但如果它被触发,我想选择 JPA 组件作为第一步。
<from uri="quartz://myQuartz?cron=myCronExpression/>
<to uri="jpa://home.myEntity?consumer.query=select o from home.myEntity o"/>
但是如果我用“to”来调用 JPA 组件,那么它将被用作生产者,而不是消费者。我是否可以使用 JPA 组件来处理这个问题,或者我必须遵循服务激活器(基于 bean)的逻辑并留下 JPA 组件?
提前致谢, 格格利
【问题讨论】:
-
我无法遵循这个。与您所写的相反-在您的示例中,Quartz 端点是生产者; JPA 端点是消费者。对吗?
-
这是误导... Quartz 产生一个 Exchange,是的,但是 - 据我所知 - 在 Camel 术语中,“来自”端点被称为消费者,“到”端点被称为生产者。所以消费者轮询/等待消息,而生产者发送它们。在这里, - 如果我是对的 - JPA 组件认为我想保留我的 Exchange 主体。我想以某种方式告诉他,“请运行查询并返回结果”。
-
你是对的 ;-)。但是在阅读manning.com/ibsen/Camel_ch01_update.pdf 时,术语可能会有些混乱。但回到你的问题:你能不能解释一下你想要达到的目标。您需要以特定间隔运行 JPA 查询吗?然后将查询结果发送到另一个端点?我现在只是在猜测 - 但听起来你应该看看 camel.apache.org/aggregator2.html 吗?
标签: jpa apache-camel quartz-scheduler