Я хочу использовать функцию pubsub Redis для реализации кометы, но 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?