feat(settings): 支持配置数据任务超时

- 在数据源设置页配置普通任务与分钟 K 长任务超时
- 支持秒、分钟、小时输入,持久化时统一换算为秒
- 保留 1200/1800 秒默认值,配置仅影响新创建的任务
This commit is contained in:
Arepeater
2026-08-05 17:57:05 +08:00
parent b43e2fe44a
commit 7dad95c4f1
7 changed files with 223 additions and 12 deletions
+15
View File
@@ -350,6 +350,11 @@ class DataProvidersIn(BaseModel):
financial_data_provider: str | None = None
class DataSourceJobTimeoutPrefs(BaseModel):
data_source_job_timeout_s: int = Field(ge=60)
data_source_long_job_timeout_s: int = Field(ge=60)
class DatasetFieldMapItem(BaseModel):
source: str
target: str
@@ -413,6 +418,8 @@ def get_preferences() -> dict:
"minute_data_provider": preferences.get_minute_data_provider(),
"realtime_data_provider": preferences.get_realtime_data_provider(),
"financial_data_provider": preferences.get_financial_provider(),
"data_source_job_timeout_s": preferences.get_data_source_job_timeout_s(),
"data_source_long_job_timeout_s": preferences.get_data_source_long_job_timeout_s(),
"realtime_watchlist_symbols": preferences.get_realtime_watchlist_symbols(),
**preferences.get_realtime_quote_scope(),
"pipeline_pull_a_share": preferences.get_pipeline_pull_a_share(),
@@ -616,6 +623,14 @@ def update_data_providers(req: DataProvidersIn) -> dict:
}
@router.put("/preferences/data-source-job-timeouts")
def update_data_source_job_timeouts(req: DataSourceJobTimeoutPrefs) -> dict:
"""保存普通与长数据后台任务的卡死判定时间。"""
from app.services import preferences
preferences.save(req.model_dump())
return req.model_dump()
@router.get("/preferences/watchlist-columns")
def get_watchlist_columns() -> dict:
"""返回自选列表列配置。"""