feat: REDIS_SOCKET_CONNECT_TIMEOUT

Co-Authored-By: Jan Kessler <Ithanil@users.noreply.github.com>
This commit is contained in:
Timothy Jaeryang Baek 2025-12-08 11:59:45 -05:00
parent b02397e460
commit ba158d378f
2 changed files with 18 additions and 1 deletions

View file

@ -395,6 +395,13 @@ try:
except ValueError: except ValueError:
REDIS_SENTINEL_MAX_RETRY_COUNT = 2 REDIS_SENTINEL_MAX_RETRY_COUNT = 2
REDIS_SOCKET_CONNECT_TIMEOUT = os.environ.get("REDIS_SOCKET_CONNECT_TIMEOUT", "")
try:
REDIS_SOCKET_CONNECT_TIMEOUT = float(REDIS_SOCKET_CONNECT_TIMEOUT)
except ValueError:
REDIS_SOCKET_CONNECT_TIMEOUT = None
#################################### ####################################
# UVICORN WORKERS # UVICORN WORKERS
#################################### ####################################
@ -620,8 +627,15 @@ ENABLE_WEBSOCKET_SUPPORT = (
WEBSOCKET_MANAGER = os.environ.get("WEBSOCKET_MANAGER", "") WEBSOCKET_MANAGER = os.environ.get("WEBSOCKET_MANAGER", "")
WEBSOCKET_REDIS_OPTIONS = os.environ.get("WEBSOCKET_REDIS_OPTIONS", "") WEBSOCKET_REDIS_OPTIONS = os.environ.get("WEBSOCKET_REDIS_OPTIONS", "")
if WEBSOCKET_REDIS_OPTIONS == "": if WEBSOCKET_REDIS_OPTIONS == "":
log.debug("No WEBSOCKET_REDIS_OPTIONS provided, defaulting to None") log.debug("No WEBSOCKET_REDIS_OPTIONS provided, defaulting to None")
if REDIS_SOCKET_CONNECT_TIMEOUT:
WEBSOCKET_REDIS_OPTIONS = {
"socket_connect_timeout": REDIS_SOCKET_CONNECT_TIMEOUT
}
else:
WEBSOCKET_REDIS_OPTIONS = None WEBSOCKET_REDIS_OPTIONS = None
else: else:
try: try:

View file

@ -7,6 +7,7 @@ import redis
from open_webui.env import ( from open_webui.env import (
REDIS_CLUSTER, REDIS_CLUSTER,
REDIS_SOCKET_CONNECT_TIMEOUT,
REDIS_SENTINEL_HOSTS, REDIS_SENTINEL_HOSTS,
REDIS_SENTINEL_MAX_RETRY_COUNT, REDIS_SENTINEL_MAX_RETRY_COUNT,
REDIS_SENTINEL_PORT, REDIS_SENTINEL_PORT,
@ -162,6 +163,7 @@ def get_redis_connection(
username=redis_config["username"], username=redis_config["username"],
password=redis_config["password"], password=redis_config["password"],
decode_responses=decode_responses, decode_responses=decode_responses,
socket_connect_timeout=REDIS_SOCKET_CONNECT_TIMEOUT,
) )
connection = SentinelRedisProxy( connection = SentinelRedisProxy(
sentinel, sentinel,
@ -188,6 +190,7 @@ def get_redis_connection(
username=redis_config["username"], username=redis_config["username"],
password=redis_config["password"], password=redis_config["password"],
decode_responses=decode_responses, decode_responses=decode_responses,
socket_connect_timeout=REDIS_SOCKET_CONNECT_TIMEOUT,
) )
connection = SentinelRedisProxy( connection = SentinelRedisProxy(
sentinel, sentinel,