我正在构建我的兔子(兔子3.6.5,erlang r16b03(连接:
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(App.rabbitMQServer);
factory.setVirtualHost(App.rabbitVirtualHost);
factory.setRequestedHeartbeat(5);
factory.setConnectionTimeout(5000);
factory.setAutomaticRecoveryEnabled(true);
factory.setNetworkRecoveryInterval(5000);
Map<String, Object> clientProperties = new HashMap<>();
Map<String, Object> capabilities = new HashMap<>();
capabilities.put("connection.blocked", true);
clientProperties.put("capabilities", capabilities);
factory.setClientProperties(clientProperties);
_connection = factory.newConnection();
_channel = _connection.createChannel();
_connection.addBlockedListener(new BlockedListener() {
public void handleBlocked(String reason) throws IOException {
connectionIsBlocked = true;
log.warn("RabbitMQ connection blocked");
}
public void handleUnblocked() throws IOException {
connectionIsBlocked = false;
log.warn("RabbitMQ connection unblocked");
}
});
在管理Web控制台中,连接看起来还不错 - 功能存在,但是blockedlistener方法从未调用。我想念什么?
顺便说一句,我还有另一个过程中编写的过程,也从未称呼其流侦听器...
flow := ch.NotifyFlow(make(chan bool))
go func() {
for f := range flow {
shouldFailoverToSQS = f
log.Infof("Flow status changed")
}
}()
i使blockedlistener和flowlistener(已弃用(混淆。