我正在使用 python 发布和订阅消息队列
出版商:
rc = redis.Redis(host='127.0.0.1', port=6379)
rc.ping()
ps = rc.pubsub()
ps.subscribe('bdwaf')
r_str = "--8198b507-A--"
for i in range(0, 20000):
rc.publish('bdwaf', r_str)
订户:
rc = redis.Redis(host='localhost', port=6379)
rc.ping()
ps = rc.pubsub()
ps.subscribe('bdwaf')
num = 0
while True:
item = ps.get_message()
if item:
num += 1
if item['type'] == 'message':
a.parser(item['data'])
print num
当发布者循环范围高于 20000 时,订阅者似乎无法获取所有数据,只有当我向发布者添加睡眠方法时,它才能工作。
如何在不给发布者添加休眠方法的情况下使其工作,并且无论发布者发布数据的范围是多少,订阅者都可以获取所有数据?