Desidero utilizzare la funzione pubsub di Redis per implementare comet, ma pubsub non ha timeout, quindi se I ps.listen()
, verrà bloccato, anche se il client chiude il browser.come implementare la funzione di timeout pubsub di redis?
Il greenlet ha una funzione di timeout durante il processo di spawn. ma non so come combinarli insieme.
pseudo del pallone
@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?