Redisson,工作队列/出队处理消息/在系统上未完成消息处理/元素关闭/元素关闭时的策略

问题描述

所以我 takeHead 然后开始处理。如果要扩展规模并且每个pod /实例使用8线程执行器服务,则问题是,在系统突然关闭时,“消息”将被视为已被使用/消耗。

我想一种策略是针对每个队列/出队使用单独的分布式 Redisson 列表 /映射,表示正在处理这些元素/消息。我想这行得通,但是要跟踪该列表也不容易。

有没有办法获取Head,以某种方式使用活动对象,然后将队列中的元素标记为受管理,然后在完成O(1)后以某种方式将其删除

解决方法

所以我先取头然后开始处理。如果要扩展规模并且每个pod /实例使用8线程执行器服务,则问题是,在系统突然关闭时,“消息”将被视为已被使用/消耗。

您需要使用RStream对象,它允许每个使用者跟踪未消耗的元素。