我们可以在Spring AMQP中在消费者端设置超时设置

时间:2017-02-03 07:22:48

标签: rabbitmq spring-amqp spring-rabbit spring-rabbitmq

我们可以在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)代码,以便Listener不会在Spring AMQP中被挂起

1 个答案:

答案 0 :(得分:0)

如果一个帖子在你的代码中“卡住”,框架就无法做到。

你可以注入一个自定义任务执行器,停止容器,关闭执行程序(所有线程都将被停止),或者你可以保存线程和中断是其他方式。

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

最佳解决方案是修复悬挂线程的代码。