как реализовать функцию тайм-аута pubsub в Redis?

Я хочу использовать функцию 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?
12
задан Jim Ferrans 6 April 2012 в 22:03
поделиться