使用 Redis 流,我们可以有一些消费者没有完成的待处理项目。我可以使用xpending 命令找到此类项目。让我们有两个待处理的项目:
1) 1) "1-0"
2) "local-dev"
3) (integer) 9599
4) (integer) 1
2) 1) "2-0"
2) "local-dev"
3) (integer) 9599
4) (integer) 1
通过使用xpending
我们可以仅基于 id 设置过滤器的问题。我有几个服务节点(A
, B
)进行僵尸检查:XPENDING mystream test_group - 5 1
他们每个人都收到"1-0"
物品并制作xclaim
,只有其中一个(例如A
)成为所有者并开始处理该物品。但是再次B
运行xpending
以获取新项目但它再次接收,"1-0"
因为它尚未被处理(A
正在工作)并且看起来我的所有队列都被阻止了。
有什么解决方案可以避免它并同时处理待处理的项目吗?