【发布时间】:2015-05-15 10:58:19
【问题描述】:
我正在尝试使用 Camel 以事务方式使用来自 JMS 队列的单个消息。特别是在这样的流程中:
- 等到消息发布到 JMS 队列上
- 尝试消费和处理单个消息
- 如果处理失败(发生异常),则回滚消费
- 如果处理通过,则确认并停止再消费消息
- 在应用程序生命周期的后期,另一个进程触发消费从 (1) 重新开始
起初我尝试使用轮询消费者、使用 ConsumerTemplate 来执行此操作,但我无法确定是否可以通过事务执行此操作 - 似乎事务在 ConsumerTemplate 内部,因此无论我做什么在 ConsumerTemplate 返回时,消息已被确认为已消费。
我可以使用 ConsumerTemplate 执行此操作吗?我可以使用 Camel 来做到这一点吗?如果可以,最好的方法是什么(欢迎提供简单示例)?
【问题讨论】:
标签: java transactions apache-camel consumer