修复登录任务无限重试导致文件描述符耗尽问题
1. docker-compose.yml:增加文件描述符限制 ulimits (65536) 2. login_service.py:限制最大重试次数为 10 次,避免无限重试 3. 解决 [Errno 24] Too many open files 错误
This commit is contained in:
@@ -26,6 +26,11 @@ services:
|
|||||||
- MAIL_ROUNDCUBE_URL=${MAIL_ROUNDCUBE_URL:-}
|
- MAIL_ROUNDCUBE_URL=${MAIL_ROUNDCUBE_URL:-}
|
||||||
# Uvicorn reload(生产环境保持 false)
|
# Uvicorn reload(生产环境保持 false)
|
||||||
- UVICORN_RELOAD=${UVICORN_RELOAD:-false}
|
- UVICORN_RELOAD=${UVICORN_RELOAD:-false}
|
||||||
|
# 增加文件描述符限制,避免 "Too many open files" 错误
|
||||||
|
ulimits:
|
||||||
|
nofile:
|
||||||
|
soft: 65536
|
||||||
|
hard: 65536
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/health')"]
|
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/health')"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
|
|||||||
@@ -38,7 +38,9 @@ class LoginBatchRunner:
|
|||||||
self.created_by = created_by
|
self.created_by = created_by
|
||||||
self.creator_permissions = creator_permissions
|
self.creator_permissions = creator_permissions
|
||||||
self.max_proxy_retries = max_proxy_retries
|
self.max_proxy_retries = max_proxy_retries
|
||||||
self.max_login_retries = max_login_retries
|
# 限制最大重试次数,避免无限重试导致资源耗尽
|
||||||
|
# 0 表示使用默认值 10,其他值保持原样
|
||||||
|
self.max_login_retries = max_login_retries if max_login_retries > 0 else 10
|
||||||
self.max_total_time = max_total_time
|
self.max_total_time = max_total_time
|
||||||
self.proxy_config = proxy_config
|
self.proxy_config = proxy_config
|
||||||
self.log_queue = log_queue
|
self.log_queue = log_queue
|
||||||
|
|||||||
Reference in New Issue
Block a user