首页 > 解决方案 > 如何使用 redisson 为 RBlockingQueue 创建一个监听器?

问题描述

在我的一项服务中,我将添加到队列中:

RBlockingQueue<String> queue = redissonClient.getBlockingQueue("ABC");
            queue.add(receivedTask.toString());

在第二个服务中,我连接到同一个 redis 实例,并希望在从第一个服务添加新元素后从队列中读取/弹出,如下所示:

RBlockingQueue<String> queue = redisClient.getRedissonClient().getBlockingDeque("ABC");
        System.out.println("received: " +  queue.poll(0, TimeUnit.SECONDS));

我之前在处理 RTopic,它工作正常,但是用例已经改变,现在必须使用 RQueue。不知道我在这里做错了什么。

标签: redisredisson

解决方案


实际上发现我做错了什么。应该使用 subscribeOnElements():它通知侦听器并轮询可以访问的新元素。

queue.subscribeOnElements((msg) -> {
//code
});

推荐阅读