Я хочу использовать функцию redis pubsub для реализации кометы, но у pubsub нет тайм-аута, поэтому, если я ps.listen()
, он будет блокироваться, даже если клиент закрывает браузер.
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?