当前位置: 首页 > 知识库问答 >
问题:

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

越安翔
2023-03-14

我们能在SpringAMQP中的消费者端设置超时吗?

我们有一个用例,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就不会在SpringAMQP中被挂起

共有1个答案

苏乐
2023-03-14

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

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

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

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

 类似资料:
  • 我有一个多分区主题,由多个使用者(同一组)使用。我的目标是最大化消费处理,即任何消费者都可以消费来自任何分区的消息。 我知道这看起来是不可能的,因为只有一个消费者可以从一个分区中消费。 有没有可能使用REST代理来实现这一点?例如,轮询所有代理消费者实例。 谢了。

  • 我试图做一个简单的poc与Spring启动与版本(2.3.7发布)的SpringKafka,以实现消费者批处理的工作原理,以及如何再平衡工作,如果消费者需要更多的流转时长,因为我是全新的这个消息系统。 现在我看到kafka重新平衡单个消费者(不允许并发)的问题。 这些是我设置的max.poll.interval属性。ms=50000和factory.getContanerProperties。se

  • 我正在使用Jfreechart制作堆叠面积图。我正在使用类StackedXYAreaChart。 我想知道我们是否可以在StackedAreaChart的数据点上绘制形状(它是一个折线图,我们可以通过设置SetSeriesShapes()来表示每个数据点)。 setSeriesShape()方法似乎不起作用。有人知道吗? 以下是我到目前为止所尝试的(请不要评论我有一个空数据集。我正在绘制一个动态图

  • 将Pact用于消费者与提供者的契约测试,而不是对提供者的功能测试 功能测试是确保提供者在某个请求下执行正确的动作。这些测试代码属于提供者团队,不应该由消费者团队完成。 而契约测试的目的是确保消费者团队和提供者团队对请求和响应达成共识。 Pact测试应该关注于: 检查消费者如何构建请求以及处理响应时所暴露出的bug 检查提供者的行为,消除理解上的偏差 Pact测试不应该关注于: 提供者内部所暴露的b

  • 问题内容: 我在Tomcat上有一个Web应用程序,该应用程序处理数据库连接池,并使用Spring JDBCTemplate执行查询。有人要求我实现一个状态页面,该页面将由心跳过程进行监视,以确定服务器是否一切正常。 作为此操作的一部分,我想执行一个数据库查询以确定与数据库的连接是否正常。理想情况下,由于它只是“从中选择1”,因此我希望它能在10秒内快速返回,以指示如果DB在那段时间内没有响应,则

  • 问题内容: Firefox总是加载动态图像,但是IE只是显示图像而没有任何动态动作。我需要做些什么改变? IE查看源代码中的JavaScript代码: 我正在使用Wicket框架,所以真正的Java代码是: 加载我的动态图像的html页面是: 问题答案: 解决了我的问题。可能对其他人有用: 回答: HTML源代码: HTML: