【问题标题】:SpringIntegration remove message from the Queue without processingSpringIntegration 从队列中删除消息而不进行处理
【发布时间】:2012-12-31 19:25:11
【问题描述】:

我们的应用程序中有一个 JMS 关闭队列,需要在特定事件上使用 Spring 上下文关闭正在运行的节点。

为了正确关闭正在运行的 ApplicationContext 而不会在启动时再次处理此“关闭”消息,我们需要单独杀死 Thread,以确保该消息是在我们杀死 ApplicationContext 之前处理。

有没有办法避免额外杀死线程

例如:配置SpringIntegration流以标记消息已读,在从Queue读取消息后,忽略可能的处理失败。

【问题讨论】:

  • 您的意思是从队列中删除它而不会有事务回滚的风险吗?您可以创建自己的DefaultMessageListenerContainer 实例并将sessionTransacted 设置为falsejms:message-driven-channel-adapter

标签: java spring queue jms spring-integration


【解决方案1】:

如果您将终止消息路由到ExecutorChannel(或QueueChannel),该消息将被移交给另一个线程,并且事务将立即提交。

【讨论】:

    猜你喜欢
    • 2015-04-23
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-14
    • 2015-10-18
    • 2014-06-07
    • 2015-12-20
    相关资源
    最近更新 更多