#redis #spring-webflux #reddison
Вопрос:
я использую веб-поток spring boot с redisson. Я хочу включить все ключевые события с истекшим сроком действия в своем приложении. я попробовал сделать это таким образом. но это не работает.
this.client.getTopic("__keyevent@*__:expired", StringCodec.INSTANCE)
.addListener(String.class, new MessageListener<String>() {
@Override
public void onMessage(CharSequence channel, String msg) {
//
}
});
Я хочу, чтобы вы помогли решить эту проблему.
Комментарии:
1. 1-я проблема в том, что вы не подписались на слушателя
2. да. что дальше?
Ответ №1:
1-я проблема в том, что вы не подписались на слушателя. и 2 — й-это то, что вы не можете использовать getTopic
для события pub-sub, если используете шаблон в redisson. вы должны использовать getPatternTopic
такой метод. и не забудьте подписаться на этот процесс, наконец. и слушатель должен быть реализован из PatternMessageListener
интерфейса.
this.client
.getPatternTopic("__keyevent@*__:expired", StringCodec.INSTANCE)
.addListener(String.class, new PatternMessageListener<String>() {
@Override
public void onMessage(CharSequence pattern, CharSequence channel, String msg) {
System.out.println("pattern = " pattern ", channel = " channel ", msg = " msg);
}
})
.subscribe();