python - 用于单个接收者的 Redis 发布/订阅

标签 python redis rabbitmq

我是一个正在探索 RedisRabbitMQ 用户,并且有两个关于 pub/sub 机制的问题

  1. 我可以将消息发布到每个客户端(消费者)删除其他客户端条目的系统吗?我想发布 100 个任务,但每个任务只能由 1 个订阅者处理。

  2. 据我所知,默认情况下,所有消息始终广播/发布给所有客户端。如果一个客户端需要 1 秒来处理消息,而另一个客户端需要 1 分钟,该怎么办?这里的限制是什么?某些消息会在某个时刻被丢弃吗?

非常感谢!

最佳答案

1) 这不是发布/订阅的工作原理。 Publish 不关心也不知道是否被接收,它只是发布一条消息。每个订阅的订阅者都会收到它,并且您无法阻止此操作

2) 由您来处理客户端逻辑。

从听起来来看,redis pub/sub 可能不是您正在寻找的系统/模式。您应该特别研究 zeromqpushpull 套接字,它们不是发布消息,而是一次将消息推送到特定套接字。如果您通读starter documentation解释了许多模式,并且某些模式适用于您的具体情况。

关于python - 用于单个接收者的 Redis 发布/订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57999302/

相关文章:

python - Python 中的四舍五入日期

javascript - 在 Linux 上部署 Javascript 应用程序的最简单方法

ruby-on-rails - Sidekiq 工作卡在队列中

python - Scrapy集群分布式爬虫策略

php - 在没有http的情况下从同一服务器上的php向ngnix发送信息

python - 一个 Dataframe 的每一列的最大值和最小值

python - 将内置函数类型转换为方法类型(在 Python 3 中)

javascript - 快速 session 无法设置未定义的属性 'id'

amazon-ec2 - 是否有提供 Amazon SQS 高可用性的 FIFO 消息队列服务?

java - 尝试使用rabbitmq在Docker容器之间发送消息