2017-02-03 22 views
0

設置,我們可以有一個超時在春季AMQP消費端的設置,我們能有一個超時在消費端在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中被掛起

回答

0

如果線程在代碼中「卡住」,框架就無能爲力。

您可以注入一個自定義任務執行程序,停止容器並關閉執行程序(所有線程都將停止),或者您可以保存線程和中斷。

但是即使中斷線程(使用任何技術)也無濟於事,如果「卡住」用戶代碼不可中斷 - 例如在緊密的CPU循環或等待套接字讀取中。

最好的解決辦法是修復懸掛線程的代碼。

相關問題