メッセージキューイングの公開と購読に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 を超えると、サブスクライバーはすべてのデータを取得していないように見えます。パブリッシャーにスリープ メソッドを追加した場合にのみ機能します。
パブリッシャーにスリープメソッドを追加せずに機能させるにはどうすればよいですか?パブリッシャーがデータをパブリッシュする範囲に関係なく、サブスクライバーはすべてのデータを取得できますか?