Салат предоставляет модель событий для событий подключения.Вы можете подписаться на EventBus
и реагировать на события, опубликованные в автобусе.Существует несколько событий, но в вашем случае вы хотите прослушивать подключенные и отключенные события:
ConnectionActivatedEvent
: логическое соединение активировано и может использоваться для отправки команд Redis (SSLрукопожатие завершено, PING перед активацией полученного ответа) ConnectionDeactivatedEvent
: логическое соединение деактивировано.Состояние внутренней обработки сбрасывается, а флаг isOpen()
устанавливается на false
.
Оба события запускаются после получения событий, связанных с транспортом, таких как ConnectedEvent
соответствующие DisconnectedEvent
.
В следующем примере показано, как использовать эти события:
RedisClient client = RedisClient.create()
EventBus eventBus = client.getresources().eventBus();
Disposable subscription = eventBus.get().subscribe(e -> {
if (e instanceOf ConnectionActivatedEvent) {
// …
}
});
…
subscription.dispose();
client.shutdown();
Обратите внимание, что события отправляются асинхронно.Все, что происходит в приемнике событий, должно быть неблокирующим (т. Е. Если вам нужно вызвать блокирующий код, например, для дальнейшего взаимодействия с Redis, пожалуйста, перенесите эту задачу на выделенный Thread
).
Подробнее