Rabbitmq Spring AMQP侦听器超时

Rabbitmq Spring AMQP侦听器超时,rabbitmq,spring-amqp,spring-rabbit,Rabbitmq,Spring Amqp,Spring Rabbit,我需要处理SpringAMQP侦听器超时功能,即我们从生产者发送消息,SpringAMQP的消费者侦听器线程接收到消息,但是说执行自身和挂起要花费很多时间,这最终会导致侦听器线程变得不可用 那么,我们有没有办法让Spring AMQP提供任何使用者超时设置,以便在给定超时时间后再次释放侦听器线程呢?实际上,您可以使用Spring AMQP来提及超时,下面是如何实现的 <bean id="connectionFactory" class="org.springframework.amqp.

我需要处理SpringAMQP侦听器超时功能,即我们从生产者发送消息,SpringAMQP的消费者侦听器线程接收到消息,但是说执行自身和挂起要花费很多时间,这最终会导致侦听器线程变得不可用


那么,我们有没有办法让Spring AMQP提供任何使用者超时设置,以便在给定超时时间后再次释放侦听器线程呢?实际上,您可以使用Spring AMQP来提及超时,下面是如何实现的

<bean id="connectionFactory"  class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
    <property name="connectionTimeout"      value="1000" />
    <property name="concurrency"            value="16" /> <!-- in milliseconds -->
    <property name="recoveryInterval"       value="5000" />
</bean>

注意:如果用户数量有限,并且使用手动确认,并且由于某种原因没有发送回确认信号,则可能会发生超时;这意味着您持有线程而没有释放它,这也会影响您的性能

更多


  • 事实上,您可以使用spring amqp提到超时,下面是如何实现的

    <bean id="connectionFactory"  class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
        <property name="connectionTimeout"      value="1000" />
        <property name="concurrency"            value="16" /> <!-- in milliseconds -->
        <property name="recoveryInterval"       value="5000" />
    </bean>
    
    
    
    注意:如果用户数量有限,并且使用手动确认,并且由于某种原因没有发送回确认信号,则可能会发生超时;这意味着您持有线程而没有释放它,这也会影响您的性能

    更多


  • 如果线程卡在代码中,则容器无法释放它。如果是在可中断代码中,则可以中断线程


    如果线程卡在不可中断的代码中,则说明您运气不佳。

    如果线程卡在代码中,则容器无法释放它。如果是在可中断代码中,则可以中断线程


    如果它卡在不间断的代码中,您就倒霉了。

    您使用的是手动还是自动确认?您使用的是手动还是自动确认?