mirror of
https://github.com/open-webui/open-webui.git
synced 2026-08-27 16:04:50 -06:00
refac
This commit is contained in:
@@ -507,6 +507,15 @@ try:
|
||||
except ValueError:
|
||||
WEBSOCKET_SERVER_PING_INTERVAL = 25
|
||||
|
||||
WEBSOCKET_HEARTBEAT_INTERVAL = os.getenv('WEBSOCKET_HEARTBEAT_INTERVAL', '')
|
||||
if WEBSOCKET_HEARTBEAT_INTERVAL == '':
|
||||
WEBSOCKET_HEARTBEAT_INTERVAL = None
|
||||
else:
|
||||
try:
|
||||
WEBSOCKET_HEARTBEAT_INTERVAL = min(max(int(WEBSOCKET_HEARTBEAT_INTERVAL), 5), 90)
|
||||
except ValueError:
|
||||
WEBSOCKET_HEARTBEAT_INTERVAL = 30
|
||||
|
||||
WEBSOCKET_EVENT_CALLER_TIMEOUT = os.getenv('WEBSOCKET_EVENT_CALLER_TIMEOUT', '')
|
||||
|
||||
if WEBSOCKET_EVENT_CALLER_TIMEOUT == '':
|
||||
|
||||
@@ -111,6 +111,7 @@ from open_webui.env import (
|
||||
SAFE_MODE,
|
||||
SCIM_TOKEN,
|
||||
VERSION,
|
||||
WEBSOCKET_HEARTBEAT_INTERVAL,
|
||||
# Admin Account Runtime Creation
|
||||
WEBUI_ADMIN_EMAIL,
|
||||
WEBUI_ADMIN_NAME,
|
||||
@@ -2297,6 +2298,11 @@ async def get_app_config(request: Request):
|
||||
'enable_signup': config.get('ui.enable_signup'),
|
||||
'enable_login_form': config.get('ui.enable_login_form'),
|
||||
'enable_websocket': ENABLE_WEBSOCKET_SUPPORT,
|
||||
**(
|
||||
{'websocket_heartbeat_interval': WEBSOCKET_HEARTBEAT_INTERVAL}
|
||||
if WEBSOCKET_HEARTBEAT_INTERVAL is not None
|
||||
else {}
|
||||
),
|
||||
# --- Authenticated: only consumed by logged-in frontend ---
|
||||
**(
|
||||
{
|
||||
|
||||
@@ -16,6 +16,7 @@ from open_webui.env import (
|
||||
GLOBAL_LOG_LEVEL,
|
||||
REDIS_KEY_PREFIX,
|
||||
WEBSOCKET_EVENT_CALLER_TIMEOUT,
|
||||
WEBSOCKET_HEARTBEAT_INTERVAL,
|
||||
WEBSOCKET_MANAGER,
|
||||
WEBSOCKET_REDIS_CLUSTER,
|
||||
WEBSOCKET_REDIS_LOCK_TIMEOUT,
|
||||
@@ -102,7 +103,11 @@ else:
|
||||
|
||||
# Timeout duration in seconds
|
||||
TIMEOUT_DURATION = 3
|
||||
SESSION_POOL_TIMEOUT = 120 # seconds without heartbeat before session is reaped
|
||||
SESSION_POOL_TIMEOUT = (
|
||||
max(WEBSOCKET_HEARTBEAT_INTERVAL * 4, 120)
|
||||
if WEBSOCKET_HEARTBEAT_INTERVAL is not None
|
||||
else 120
|
||||
)
|
||||
|
||||
# Dictionary to maintain the user pool
|
||||
|
||||
|
||||
@@ -355,6 +355,7 @@ type Config = {
|
||||
enable_version_update_check: boolean;
|
||||
enable_pyodide_file_persistence?: boolean;
|
||||
folder_max_file_count?: number;
|
||||
websocket_heartbeat_interval?: number | null;
|
||||
};
|
||||
oauth: {
|
||||
providers: {
|
||||
|
||||
@@ -213,13 +213,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
// Send heartbeat every 30 seconds
|
||||
heartbeatInterval = setInterval(() => {
|
||||
if (_socket.connected) {
|
||||
console.log('Sending heartbeat');
|
||||
_socket.emit('heartbeat', {});
|
||||
}
|
||||
}, 30000);
|
||||
heartbeatInterval = setInterval(
|
||||
() => {
|
||||
if (_socket.connected) {
|
||||
console.log('Sending heartbeat');
|
||||
_socket.emit('heartbeat', {});
|
||||
}
|
||||
},
|
||||
($config?.features?.websocket_heartbeat_interval ?? 30) * 1000
|
||||
);
|
||||
|
||||
if (deploymentId !== null) {
|
||||
WEBUI_DEPLOYMENT_ID.set(deploymentId);
|
||||
|
||||
Reference in New Issue
Block a user