rabbitmq 如何触发兔子mq关机信号进行测试?

omhiaaxx  于 2023-08-05  发布在  RabbitMQ
关注(0)|答案(1)|浏览(129)

面对生产系统的问题,其中1条消息未被确认30分钟,导致消费者关机。现在我已经添加了shutdownlistener,如rabbit mq docs -https://rabbitmq.github.io/rabbitmq-java-client/api/4.x.x/com/rabbitmq/client/ShutdownListener.html中所述

if (cause.isHardError()) {
                    log.error("Connection error with cause : {}", cause);
                    Connection conn = (Connection) cause.getReference();
                    if (!cause.isInitiatedByApplication()) {
                        Method reason = cause.getReason();
                        log.error("Rabbit Mq Consumer Connection Shutdown : {} {}", reason, cause);
                    }
                } else{
                    Channel ch = (Channel)cause.getReference();
                    log.error("Channel error details : {}", ch);
                }
            });

字符串
问题是它在测试中根本没有被调用。我试过两种方法来触发-
1.通过未确认的传递超时。基本上抛出了一个一般的excption,从来没有acked它(这些是错误的原始条件)。然而,这并不奏效。
1.我使用channel.close()关闭消费者,但仍然没有收到事件。
寻找任何方法来复制我所面临的问题和测试/触发shutdownlisteners。谢啦,谢啦

nbysray5

nbysray51#

我知道这可能是一个迟来的答案,但我发现了一个简单的方法是保持消费者连接到rabbitmq经纪人,只需手动断开我的互联网连接几秒钟,然后重新连接。
之后,shudown handler被触发。

相关问题