Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我在Spring框架中使用rabbitmq,如何在创建连接时调用basicRecover?_Java_Spring_Rabbitmq - Fatal编程技术网

Java 我在Spring框架中使用rabbitmq,如何在创建连接时调用basicRecover?

Java 我在Spring框架中使用rabbitmq,如何在创建连接时调用basicRecover?,java,spring,rabbitmq,Java,Spring,Rabbitmq,我使用的是rabbitmq spring框架。我的队列有一个问题,在rabbitmq使用者部署期间,突然断开连接会留下未确认的消息 <rabbit:listener-container id="MyListenerContainer" connection-factory="MyRabbitConsumerConnectionFactory" prefetch="100" concurrency="5" acknowledge="manual" au

我使用的是rabbitmq spring框架。我的队列有一个问题,在rabbitmq使用者部署期间,突然断开连接会留下未确认的消息

<rabbit:listener-container id="MyListenerContainer"
    connection-factory="MyRabbitConsumerConnectionFactory"
    prefetch="100"
    concurrency="5"
    acknowledge="manual"
    auto-startup="true">
    <rabbit:listener queues="MyRabbitQueue" ref="MyConsumer"/>


MyConsumer实现了ChannelAwareMessageListener接口。 如何在创建连接期间发出basicRecover(true)方法


谢谢

尝试使用
com.rabbitmq.client.ConnectionFactory

/**
 * Enables or disables <a href="http://www.rabbitmq.com/api-guide.html#recovery">automatic connection recovery</a>.
 * @param automaticRecovery if true, enables connection recovery
 * @see <a href="http://www.rabbitmq.com/api-guide.html#recovery">Automatic Recovery</a>
 */
public void setAutomaticRecoveryEnabled(boolean automaticRecovery) {
    this.automaticRecovery = automaticRecovery;
}
/**
*启用或禁用。
*@param automaticRecovery如果为true,则启用连接恢复
*@见
*/
public void setAutomaticRecoveryEnabled(布尔值automaticRecovery){
this.automaticRecovery=自动恢复;
}

默认情况下为
false

尝试使用
com.rabbitmq.client.ConnectionFactory

/**
 * Enables or disables <a href="http://www.rabbitmq.com/api-guide.html#recovery">automatic connection recovery</a>.
 * @param automaticRecovery if true, enables connection recovery
 * @see <a href="http://www.rabbitmq.com/api-guide.html#recovery">Automatic Recovery</a>
 */
public void setAutomaticRecoveryEnabled(boolean automaticRecovery) {
    this.automaticRecovery = automaticRecovery;
}
/**
*启用或禁用。
*@param automaticRecovery如果为true,则启用连接恢复
*@见
*/
public void setAutomaticRecoveryEnabled(布尔值automaticRecovery){
this.automaticRecovery=自动恢复;
}

默认情况下,它是
false

您可以使用RabbitMQ管理HTTP API列出所有通道,然后在每个通道的详细信息上,您可以看到它空闲了多长时间,并做出相应的反应,例如关闭通道,这将自动拒绝仍然挂在该通道上的任何未确认消息


请参见此处:

您可以使用RabbitMQ管理HTTP API列出所有通道,然后在每个通道的详细信息上,您可以看到它空闲了多长时间,并做出相应的反应,例如关闭通道,这将自动删除仍然挂在该通道上的任何未确认消息


请参见此处:

我已启用自动恢复。我可以恢复连接。停止我的使用者(停止我的使用者的进程),然后稍后重新启动后我的问题。在停止消费的那一刻,留下了许多未确认的信息。所以我想在第一次建立连接时给basicRecover打电话。我不想猜测和复制/粘贴,所以我要把你发送到正确的链接:我在ConnectionFactory上添加了一个channelListener。在onCreate方法中,我将发布channel.basicRecover(true)。我有一个问题,由于channel.basicRecover(真)?从我的角度来看,重新传递的消息已将重新传递标志设置为真。您的邮件已发送一次。因此,恢复跟踪它并让您的新消费者知道以前发生了意外。在这种情况下,重新交付标志是否设置为true?我已启用自动恢复。我可以恢复连接。停止我的使用者(停止我的使用者的进程),然后稍后重新启动后我的问题。在停止消费的那一刻,留下了许多未确认的信息。所以我想在第一次建立连接时给basicRecover打电话。我不想猜测和复制/粘贴,所以我要把你发送到正确的链接:我在ConnectionFactory上添加了一个channelListener。在onCreate方法中,我将发布channel.basicRecover(true)。我有一个问题,由于channel.basicRecover(真)?从我的角度来看,重新传递的消息已将重新传递标志设置为真。您的邮件已发送一次。因此,恢复跟踪它并让您的新消费者知道以前发生了意外情况,这是好消息。在这种情况下,重新交付标志设置为true吗?