diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index 86f603d..1d6194b 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -2052,10 +2052,10 @@ export const api = { method: 'POST', body: JSON.stringify({ symbols, days }), }), - klineMinuteBatch: (symbols: string[], date?: string) => - request<{ data: Record }>('/api/kline/minute-batch', { + klineMinuteBatch: (symbols: string[], date?: string, preferLocal?: boolean) => + request<{ data: Record; full_minute_local?: boolean }>('/api/kline/minute-batch', { method: 'POST', - body: JSON.stringify({ symbols, date }), + body: JSON.stringify({ symbols, date, ...(preferLocal ? { prefer_local: true } : {}) }), }), instrumentSearch: (q: string, limit = 20, assetTypes?: string) => request<{ results: { symbol: string; name: string; code: string; asset_type?: string }[] }>( diff --git a/frontend/src/pages/Watchlist.tsx b/frontend/src/pages/Watchlist.tsx index 39d3da2..57d5092 100644 --- a/frontend/src/pages/Watchlist.tsx +++ b/frontend/src/pages/Watchlist.tsx @@ -880,7 +880,9 @@ export function Watchlist() { const intradayRefreshInterval = prefsData?.minute_intraday_refresh_interval ?? 6 const minuteBatch = useQuery({ queryKey: QK.minuteBatch(minuteSymbolsKey), - queryFn: () => api.klineMinuteBatch(minuteSymbols), + // prefer_local: 全量分钟服务健康时股票缺口不再批量补拉 (本地分区由服务持续写入), + // 大自选(数百上千只)不再持续打批量分钟接口 + queryFn: () => api.klineMinuteBatch(minuteSymbols, undefined, true), enabled: intradayVisible && minuteSymbols.length > 0 && !groupCardsOpen, staleTime: 10_000, refetchInterval: (intradayRefreshEnabled && realtimeRunning) ? intradayRefreshInterval * 1000 : false,