Я использовал JedisPubSub для реализации подписчика jedis для получения ключей истечения срока действия и их сообщений. Через некоторое время onPMessage (шаблон, канал, сообщение) прекращает подписку на сообщения, но вызывается onPSubscribe (шаблон, канал).
Я использую выделенное соединение jedispool для подписчика и издателя.
Может кто-нибудь помочь мне узнать, почему он прекратил подписку на сообщения?
Слушатель уведомлений:
открытый класс KeyExpiredListener расширяет JedisPubSub {
@Override
public void onPSubscribe(String pattern, int subscribedChannels) {
LOGGER.info("onPSubscribe " + pattern + " " + subscribedChannels + "\n");
}
@Override
public void onPMessage(String pattern, String channel, String message) {
LOGGER.info("onPMessage pattern " + pattern + " " + channel + " " + message);
}
}
Абонент:
подписчик открытого класса {
public static void main(String[] args) {
JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost");
Jedis jedis = pool.getResource();
jedis.psubscribe(new KeyExpiredListener(), "__key*__:*");
}
}
Ожидается:
Каждый раз, когда onPMessage () должен срабатывать при получении сообщения.
Фактический:
Прекращает запуск после определенного количества сообщений.