fix: unify backend port to 18080 and make validator targets configurable
- Set default API port to 18080 in config.py - Add configurable validation_targets to SettingsSchema and DEFAULT_SETTINGS - Update ValidatorService to support runtime test URL updates - Hot-reload validation_targets from DB on startup and on settings save - Add domestic fallback URLs (baidu.com, qq.com) to reduce foreign dependency risk - Update Settings.vue to allow adding/removing validator target URLs in UI
This commit is contained in:
@@ -41,6 +41,8 @@ async def lifespan(app: FastAPI):
|
||||
connect_timeout=app_settings.validator_connect_timeout,
|
||||
max_concurrency=db_settings.get("default_concurrency", app_settings.validator_max_concurrency),
|
||||
)
|
||||
if db_settings.get("validation_targets"):
|
||||
validator.update_test_urls(db_settings["validation_targets"])
|
||||
|
||||
# 验证 WorkerPool
|
||||
async def validation_handler(proxy):
|
||||
|
||||
@@ -45,9 +45,11 @@ async def save_settings(request: SettingsSchema, http_request: Request):
|
||||
validator._init_timeout = request.validation_timeout
|
||||
validator._init_connect_timeout = request.validation_timeout
|
||||
validator._init_max_concurrency = request.default_concurrency
|
||||
if request.validation_targets:
|
||||
validator.update_test_urls(request.validation_targets)
|
||||
# 重新创建 semaphore 和 session
|
||||
validator._semaphore = None
|
||||
await validator.close()
|
||||
logger.info(f"Validator config updated: timeout={request.validation_timeout}, concurrency={request.default_concurrency}")
|
||||
logger.info(f"Validator config updated: timeout={request.validation_timeout}, concurrency={request.default_concurrency}, targets={request.validation_targets}")
|
||||
|
||||
return success_response("保存设置成功", request.model_dump())
|
||||
|
||||
Reference in New Issue
Block a user