java - 当使用 Spring Integration 从队列中读取的消息在 Transacted 情况下为 ACK 时

标签 java spring spring-integration

我们在 Spring Integration 中有一个管道,它从 ActiveMQ(5 个队列)读取消息,然后在 Splitter、Transformers、Aggregators 之间移动这些消息......最后我们将结果发送到 Rest 端点。

如果我们使用 recognize="transacted",这些消息什么时候会被确认?

最佳答案

这取决于入站 channel 适配器的类型。

对于消息驱动适配器,当流程完成时(或者容器线程通过队列 channel 或任务执行器将其移交给另一个线程),它会被确认。

对于轮询 channel 适配器,它会在调用流程之前立即进行确认,除非您将轮询器设置为事务性的,在这种情况下,它的行为与消息驱动适配器相同。

关于java - 当使用 Spring Integration 从队列中读取的消息在 Transacted 情况下为 ACK 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42537631/

相关文章:

java - 带有时区问题的简单日期格式

java - 有没有比quartz更好的方法在JAVA中运行批处理

spring-integration - 示例中提供的文件入站适配器示例不起作用

java - 当我将文件上传到 Vsftpd 服务器时,文件被锁定

java - 改变 nimbus JPopupmenu 行为

java - Hibernate:迁移到 5.2.14,NPE

java - Spring 在运行时缓存 : Enable/Disable Cache via application. 属性

java - Spring Boot 应用程序启动卡住加载 hibernate 文件

java - 如何在 Spring 启动服务器时启动守护进程

java - Spring 集成 - 队列/轮询器似乎在没有任何操作的情况下耗尽线程池