Redisson 的生产者/消费者实现

问题描述

我的目标是使用 Redisson 实现生产者/消费者模式。预期行为是有多个生产者向多个主题发送消息,多个消费者监听消息并处理它们,并且每条消息只应处理一次(仅由其中一个消费者处理)。

我尝试过 Pub/Sub,但它不符合要求,因为发布者总是广播每条消息。

我目前对这个问题的看法如下:

制作人:

client.getBlockingDeque("topic-name").addFirstAsync(messageObj)

消费者:

executorService.submit(() -> {
    var queue = client.getBlockingQueue("topic-name");
    try {
        while (!Thread.currentThread().isInterrupted()) {
            var obj = queue.take();
            handle(obj);
        }
    } catch (InterruptedException ie) {
        Thread.currentThread().interrupt();
    }
})

与 Redisson 一起使用的最惯用的方法是什么?有很多实用程序(RedissonList/RedissonQueue/RedissonDeque/RedissonStream/etc),但我很难选择一个

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)