rabbitmq - Spring AMQP : Register BlockedListener to Connection

标签 rabbitmq amqp spring-amqp

我正在尝试使用 Spring AMQP 的 RabbitTemplate 来实现 RabbitMQ 的阻塞监听器。在我的代码中,我使用 Spring-amqp 1.1.3 版本的 jar 文件,而我也研究了版本 1.3.1,并且该版本也不支持这一点。有谁知道我是否缺少任何支持将阻止的监听器注册到 RabbitMQ 中的新连接的版本。或者是否有任何 future 版本的 spring amqp 来支持此功能。

示例代码:

    Connection connection = factory.newConnection();
    connection.addBlockedListener(new BlockedListener() {
     @Override
     public void handleUnblocked() throws IOException {
        System.out.println("Connection is Unblocked");
     }

     @Override
     public void handleBlocked(String arg0) throws IOException {
        System.out.println("Connection Blocked");
     }           



    });
    com.rabbitmq.client.Channel channel = connection.createChannel();    

最佳答案

目前还不能开箱即用;请随时打开Improvement JIRA Issue .

但是,您可以将 Spring AMQP ConnectionListener 添加到 CachingConnectionFactory...

connectionFactory.addConnectionListener(new ConnectionListener() {

    @Override
    public void onCreate(Connection connection) {
        Channel channel = connection.createChannel(false);
        channel.getConnection().addBlockedListener(new BlockedListener() {

            @Override
            public void handleUnblocked() throws IOException {

            }

            @Override
            public void handleBlocked(String reason) throws IOException {

            }
        });
        try {
            channel.close();
        }
        catch (IOException e) {
        }
    }

    @Override
    public void onClose(Connection connection) {

    }

});

即使在添加监听器时已经建立连接,它也会被调用。

关于rabbitmq - Spring AMQP : Register BlockedListener to Connection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27105142/

相关文章:

php - Rabbitmq - php amqp broken broken pipe 错误

java - 关闭Spring AMQP中与SimpleMessageListenerContainer相关的连接

c# - Rabbitmq C# 客户端超时错误

tomcat - Rabbitmq交换扇出问题

java - rabbitmq 无法与 java 一起使用

node.js - 'when-js' 或基本 amqplibrabbitmqnodejs 教程不起作用

python - 使用 Rabbitmq 作为代理, celery worker 在推送 api 或拉 api 上工作吗?

java - 如何阻止 SimpleMessageListenerContainer 陷入关闭/重新启动循环?

java - 重新排队已接受的消息

spring - 0-9-1在AMQP 0-9-1协议(protocol)中代表什么