mirror of
https://github.com/open-webui/open-webui.git
synced 2026-02-24 04:00:31 +01:00
REDIS_RECONNECT_DELAY as positive float for handle retry delay on timeout/connection errors (#21021)
This commit is contained in:
committed by
GitHub
parent
72f330133a
commit
567b0776cd
@@ -392,6 +392,22 @@ try:
|
||||
REDIS_SOCKET_CONNECT_TIMEOUT = float(REDIS_SOCKET_CONNECT_TIMEOUT)
|
||||
except ValueError:
|
||||
REDIS_SOCKET_CONNECT_TIMEOUT = None
|
||||
|
||||
REDIS_RECONNECT_DELAY = os.environ.get(
|
||||
"REDIS_RECONNECT_DELAY", ""
|
||||
)
|
||||
|
||||
if REDIS_RECONNECT_DELAY == "":
|
||||
REDIS_RECONNECT_DELAY = None
|
||||
else:
|
||||
try:
|
||||
REDIS_RECONNECT_DELAY = float(
|
||||
REDIS_RECONNECT_DELAY
|
||||
)
|
||||
if REDIS_RECONNECT_DELAY < 0:
|
||||
REDIS_RECONNECT_DELAY = None
|
||||
except Exception:
|
||||
REDIS_RECONNECT_DELAY = None
|
||||
|
||||
####################################
|
||||
# UVICORN WORKERS
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import inspect
|
||||
from urllib.parse import urlparse
|
||||
import asyncio
|
||||
import time
|
||||
|
||||
import logging
|
||||
|
||||
@@ -12,6 +14,7 @@ from open_webui.env import (
|
||||
REDIS_SENTINEL_MAX_RETRY_COUNT,
|
||||
REDIS_SENTINEL_PORT,
|
||||
REDIS_URL,
|
||||
REDIS_RECONNECT_DELAY,
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
@@ -63,6 +66,8 @@ class SentinelRedisProxy:
|
||||
i + 1,
|
||||
REDIS_SENTINEL_MAX_RETRY_COUNT,
|
||||
)
|
||||
if REDIS_RECONNECT_DELAY:
|
||||
time.sleep(REDIS_RECONNECT_DELAY / 1000)
|
||||
continue
|
||||
log.error(
|
||||
"Redis operation failed after %s retries: %s",
|
||||
@@ -94,6 +99,8 @@ class SentinelRedisProxy:
|
||||
i + 1,
|
||||
REDIS_SENTINEL_MAX_RETRY_COUNT,
|
||||
)
|
||||
if REDIS_RECONNECT_DELAY:
|
||||
await asyncio.sleep(REDIS_RECONNECT_DELAY / 1000)
|
||||
continue
|
||||
log.error(
|
||||
"Redis operation failed after %s retries: %s",
|
||||
@@ -122,6 +129,8 @@ class SentinelRedisProxy:
|
||||
i + 1,
|
||||
REDIS_SENTINEL_MAX_RETRY_COUNT,
|
||||
)
|
||||
if REDIS_RECONNECT_DELAY:
|
||||
time.sleep(REDIS_RECONNECT_DELAY / 1000)
|
||||
continue
|
||||
log.error(
|
||||
"Redis operation failed after %s retries: %s",
|
||||
|
||||
Reference in New Issue
Block a user