我想使用redis的pubsub传输一些消息,但不想使用阻止listen,例如以下代码:
listen
import redis rc = redis.Redis() ps = rc.pubsub() ps.subscribe(['foo', 'bar']) rc.publish('foo', 'hello world') for item in ps.listen(): if item['type'] == 'message': print item['channel'] print item['data']
最后for一部分将被阻止。我只想检查给定频道中是否有数据,该如何完成?有没有check类似的方法?
for
check
我认为那不可能。通道没有任何“当前数据”,您订阅了一个通道并开始接收该通道上其他客户端推送的消息,因此它是一个阻塞的API。另外,如果您查看pub / sub 的Redis Commands文档,将会更加清楚。