gpt4 book ai didi

c# - Pub/Sub Redis,是否可以监控发布的消息是否被消费?

转载 作者:可可西里 更新时间:2023-11-01 11:04:36 26 4
gpt4 key购买 nike

我有一个通过不同主题发布消息的 redis 实例。与其实现一个复杂的心跳机制(复杂是因为如果消息没有被消费,实例会在一段时间后停止发布消息),有没有办法检查 pubs 是否被任何人消费?

例如,RedisServer 实例将消息发布到topic1topic2RedisClient1订阅topic1RedisClient2订阅topic2。当 RedisClient2 出于某种原因停止使用 topic2 的消息时,我希望 RedisServer 了解它并决定何时停止向 发布消息主题 2topic2 消费的停止是不可预测的,因此我无法通知 RedisServer 停止/取消订阅。

我想如果有一种方法可以让 redis 实例知道某个主题的消息是否被消费,那将是非常有用的信息。

知道这是否可能吗?

最佳答案

假设您使用的是最新版本的 redis (> 2.8.0),这两个命令可能对您有所帮助:

PUBSUB CHANNELS [pattern]

其中列出了与模式匹配的当前事件 channel (= 至少有一个订阅者的 channel )。

PUBSUB NUMSUB [chan1 ... chanN]

返回指定 channel 的订阅者数量(但不适用于模式)。

注意:这两种解决方案都无法让您确定消息是否已真正处理!如果您需要了解任务的完成情况(如果您的消息正在触发某些事情),那么我建议您搜索一个完整的作业队列(例如 Resque,如果您想坚持使用 Redis)


编辑:这是 Redis 文档。对于以上所有内容:http://redis.io/commands/pubsub

关于c# - Pub/Sub Redis,是否可以监控发布的消息是否被消费?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28272317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com