Hello,

I am using aioredis on a BLPOP which is a blocking call on a redis 
connection.

redis.blpop is a Future created here: 
https://github.com/aio-libs/aioredis/blob/master/aioredis/connection.py#L154-L157

When using asyncio.wait_for(redis.blpop("channel"), timeout=5) if the 
timeout is raised before the blpop happens a asyncio.CancelledError is 
raised and the Future is marked as cancelled.

Later in the code I am asking for another redis.blpop("channel") and the 
next message is not catched because the cancelled task consume it 
nevertheless.

I have created a peace of code to reproduce the problem: 
https://github.com/aio-libs/aioredis/issues/59#issue-66158818

Do you have any idea of how I can handle this CancelledError in aioredis in 
order to really cancel the Future?

Thank you for your help.

Kind regards,

Rémy

Reply via email to