JmsTemplate 批处理问题

感觉不错

我当前的用例在我的监听器中,它将:

  1. 从队列中消费一个事件(我们称之为原始事件),这个事件包括重放事件列表(我们称之为子事件)。
  2. 将这些重播事件(子事件)批量生成到其他队列。
  3. 更新卡桑德拉。

我可以根据 Gary 提到的内容生成所有重播事件,并在生成期间发生任何异常时回滚所有重播事件。

将其中一种执行方法与 ProducerCallback 一起使用...

SessionCallback 和 ProducerCallback

然后,在您的 ProducerCallback.doInJms() 方法中...

使用生产者发送多条消息。当回调退出时,事务将被提交。

但是,如果在步骤 3 中发生任何异常,我们只能回滚原始事件,而不能回滚那些重放事件,因为在步骤 2 中我们已经在回调退出后提交了这些重放事件,而那些重放事件已经在另一个队列中并且无法回滚.

如果第 3 步出现异常,是否有人对我们如何回滚所有内容有更好的想法?

加里·拉塞尔

你必须在同一个会话中做所有事情;消费,生产...,cassandra。

里面都doInJms()...

  • session.createConsumer()

尝试 {

  • 消费者.接收()
  • 生产者发送() ...
  • 卡桑德拉更新

最后 {

  • 消费者.close()

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章