0

我正在使用带有 redisson 的 Spring Boot Web Flux。我想在我的应用程序中启用所有密钥过期事件。我试过这样。但它不起作用。

this.client.getTopic("__keyevent@*__:expired", StringCodec.INSTANCE)
        .addListener(String.class, new MessageListener<String>() {
            @Override
            public void onMessage(CharSequence channel, String msg) {
                //
            }
        });

我希望帮助解决这个问题。

4

1 回答 1

1

第一个问题是,您还没有订阅监听器。getTopic第二个是如果您在 redisson 中使用模式,您将无法使用pub-sub 事件。你应该使用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();

于 2021-09-23T15:54:13.147 回答