redis-py icon indicating copy to clipboard operation
redis-py copied to clipboard

Health checks being performed when not needed

Open jmspereira opened this issue 1 year ago • 1 comments

Version: What redis-py and what redis version is the issue happening on? redis-py 5.2.0 with redis 7.2.4

Platform: What platform / version? Python 3.10.12 on Ubuntu 22.04

Description:

Hey everyone,

I have an application that uses a Redis PubSub created with a connection from a connection pool (with a health_check_interval defined). Then, at a high rate (multiple times per second), it verifies if there are messages to be read (by calling the get_message() method, with a timeout), making that connection constantly in use. However, there are many times when there are no messages to be read, and so the can_read in the try_read function returns False. What I am observing is that there are health check commands emitted to Redis for this connection because the next_health_check is never updated, since there are no messages to be read.

Is this the expected behavior? I think it is strange to be doing health checks with this connection because it is constantly in use, despite there being no messages to be read.

Best regards, Jorge

jmspereira avatar Nov 08 '24 10:11 jmspereira

Hey @petyaslavova, the example that I wrote for https://github.com/redis/redis-py/issues/3444 should also give additional information for this issue.

jmspereira avatar Mar 14 '25 08:03 jmspereira