2017-02-03 11 views
0

Можем ли мы иметь тайм-аут установки на стороне потребителя в Спринг AMQP,Можно ли использовать тайм-аут установки на стороне потребителя весной 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 не повесился весной AMQP

ответ

0

Ничего не может сделать инфраструктура, если поток «застрял» в вашем коде.

Вы можете ввести пользовательскую задачу, остановить контейнер и завершить работу исполнителя (все потоки будут остановлены), или вы можете сэкономить поток, а прерывание - каким-то другим способом.

Но даже прерывание нити (с помощью любой техники) не поможет, если «застрявший» пользовательский код не прерывается - например, в узком цикле процессора или в ожидании сокета.

Лучшим решением является исправить код, который висит на потоке.

 Смежные вопросы

  • Нет связанных вопросов^_^