【问题标题】:Can we have a timeout setting at consumer side in Spring AMQP我们可以在 Spring AMQP 的消费者端设置超时吗
【发布时间】:2017-02-03 07:22:47
【问题描述】:

我们能否在 Spring AMQP 的消费者端设置超时,

我们有一个 AMQP 消息在消费者端获取的用例

 @Named("TestListener")
public class TestListener implements MessageListener {

        @Override
    public void onMessage(Message message) {
      // some error logic which got hanged the consumer thread 
    }

有什么方法可以让消费者(TestListener)代码超时,这样监听器就不会在 Spring AMQP 中被挂起

【问题讨论】:

    标签: rabbitmq spring-amqp spring-rabbit


    【解决方案1】:

    如果线程“卡”在您的代码中,框架将无能为力。

    您可以注入自定义任务执行器,停止容器,然后关闭执行器(所有线程都将停止),或者您可以保存线程并以其他方式中断。

    但是,如果“卡住”的用户代码不可中断,例如在 CPU 循环紧张或等待套接字读取时,即使中断线程(使用任何技术)也无济于事。

    最好的解决方案是修复挂起线程的代码。

    【讨论】:

      猜你喜欢
      • 2016-08-15
      • 2019-08-09
      • 1970-01-01
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-04
      • 2019-04-16
      相关资源
      最近更新 更多