我们可以在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 :(得分:0)
如果一个帖子在你的代码中“卡住”,框架就无法做到。
你可以注入一个自定义任务执行器,停止容器,关闭执行程序(所有线程都将被停止),或者你可以保存线程和中断是其他方式。
但是,如果“卡住”的用户代码不可中断,即使中断线程(使用任何技术)也无济于事 - 例如在紧凑的CPU循环中或等待套接字读取。
最佳解决方案是修复悬挂线程的代码。