基于发布订阅模式实现
一、发布订阅是什么?
典型的消息传递模式之一
二、直接上代码
1、创建生产者
import time
import redis
import names
r = redis.StrictRedis(host="127.0.0.1", port=6379)
while True:
time.sleep(2)
random_name = names.get_full_name()
x = r.publish("name", random_name)
print(x, random_name)
其中发布接口返回值我们看下源码
很明显是订阅频道的消费者个数
3、创建消费者
import redis
r = redis.StrictRedis(host="127.0.0.1", port=6379)
ps = r.pubsub() # 创建一个发布订阅对象
ps.subscribe("name") # 订阅频道
while True:
for item in ps.listen(): # 监听消息
print(item)
都知道发布订阅模式不同于点对点,他的特征就是一条消息可以被多个消费者重复消费,所以我在本地创建了三个消费者