redis - XAUTOCLAIM 后重试计数器的访问值
问题描述
我正在使用 Redis 流来构建排队功能。我想防止坏消息阻塞队列,所以我只想在丢弃它们之前尝试 N 次。
我正在使用模式:
Producer: XADD
Consumer: XAUTOCLAIM or XREADGROUP
Consumer: XACK
消费者首先尝试 XAUTOCLAIM 来自挂起列表的旧消息,如果不存在,它使用 XREADGROUP 从队列中挑选一条消息。然后它会 XACK 处理过的消息。
XAUTOCLAIM 的文档提到了一个“重试计数器”,这听起来很适合我的用例。但我不知道如何读取消息的重试计数器。
解决方案
正如 Itamar Haber 在评论中指出的那样,可以使用XPENDING 的扩展形式访问重试计数器。具体来说,响应元组的第四个值是“此消息被传递的次数”。
推荐阅读
- java - 如何在 Java 中测试子类是否相等?
- c# - SwashBuggler.swaggerDocument 未能创建文档
- python-3.x - 如何将多个 ipynb 文件(在 GCP 中)转换为 py 文件
- sympy - 如何检查符号表达式是否有理?
- python - 如何在 KDB 中以二进制格式保存列表/矩阵?
- python - 与 MySQL 连接的 pyqt5 是否可以在没有 MySQL 的其他计算机上工作?
- c++ - `struct A_API B{}` 是什么意思?
- angular - 当我们使用相对路径而不是绝对路径时,Angular 8 中的问题(从 Angular 4 升级后)
- java - 执行 Mojo 失败,出现 `java.lang.NoSuchMethodError` org.codehaus.plexus.util.DirectoryScanner.setFilenameComparator
- java - org.glassfish.jersey.internal.util eclipse Maven Webapp 项目中缺少 Base64 类