Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion pulpcore/app/redis_connection.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,22 @@
import redis as redis_module
from django.conf import settings
from redis import Redis
from redis.asyncio import Redis as aRedis

_conn = None
_a_conn = None

# redis-py 8.0.0 changed default retries from 3 to 10, causing content app request timeouts when
# Redis is unreachable. This reverts only retries; backoff base/cap are kept at 8.0.0 defaults.
_CONNECTION_KWARGS = {}
if redis_module.VERSION >= (8,):
from redis.backoff import ExponentialWithJitterBackoff
from redis.retry import Retry

_CONNECTION_KWARGS["retry"] = Retry(
backoff=ExponentialWithJitterBackoff(base=0.01, cap=1), retries=3
)


def _redis_is_needed():
return (
Expand All @@ -18,7 +30,7 @@ def _get_connection_from_class(redis_class):
return None
redis_url = getattr(settings, "REDIS_URL", None)
if redis_url is not None:
return redis_class.from_url(redis_url)
return redis_class.from_url(redis_url, **_CONNECTION_KWARGS)
else:
return redis_class(
host=settings.REDIS_HOST,
Expand All @@ -27,6 +39,7 @@ def _get_connection_from_class(redis_class):
password=settings.REDIS_PASSWORD,
ssl=settings.REDIS_SSL,
ssl_ca_certs=settings.REDIS_SSL_CA_CERTS,
**_CONNECTION_KWARGS,
)


Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ dependencies = [
"pyparsing>=3.1.0,<3.4", # Looks like only bugfixes in z-Stream.
"pysequoia>=0.1.33,<0.2",
"PyYAML>=5.1.1,<6.1", # Looks like only bugfixes in z-Stream.
"redis>=4.3.0,<7.2", # Looks like only bugfixes in z-Stream.
"redis>=4.3.0,<8.2", # Looks like only bugfixes in z-Stream.
"tablib>=3.5.0,<4.0, !=3.6", # 3.6.0 breaks with import export. Not sure about semver.
"url-normalize>=1.4.3,<3.1", # SemVer. https://github.com/niksite/url-normalize/blob/master/CHANGELOG.md#changelog
"uuid6>=2023.5.2,<=2025.0.1",
Expand Down
Loading