12
我想使用的Redis的發佈 - 訂閱功能來實現彗星,但發佈訂閱沒有超時,所以如果我ps.listen()
,它會阻止,即使客戶端關閉瀏覽器。如何實現redis的pubsub超時功能?
當spawn進程時,greenlet具有超時功能。但我不知道如何將它們結合在一起。
瓶的僞
@app.route('/')
def comet():
rc = redis.Redis()
ps = rc.pubsub()
ps.subscribe('foo')
for item in ps.listen():
if item['type'] == 'message':
return item['data']
# ps.listen() will block, so how to make it timeout after 30 s?