Parallelize multi-year rank fetch (R7)
fetchRankFromKbo awaited each year's getOrFetch sequentially even though years use independent cache keys. Map to Promise.all so multi-year lookups run concurrently; order is preserved.
This commit is contained in:
parent
f0b01a2dc0
commit
571c894278
@ -43,15 +43,16 @@ const TTL_MS = 60 * 60 * 1000; // 1 hour
|
||||
export async function fetchRankFromKbo(
|
||||
years: number[]
|
||||
): Promise<TeamRankResult[]> {
|
||||
const results: TeamRankResult[] = [];
|
||||
for (const year of years) {
|
||||
// 연도별로 독립 캐시 키를 쓰므로 순차 대기할 이유가 없다. 병렬 처리해 다년도
|
||||
// 조회 지연을 줄인다. Promise.all은 입력 순서를 보존한다.
|
||||
return Promise.all(
|
||||
years.map((year) => {
|
||||
const key = encodeKey(["rank", year]);
|
||||
const result = await getOrFetch<TeamRankResult>(key, TTL_MS, () =>
|
||||
return getOrFetch<TeamRankResult>(key, TTL_MS, () =>
|
||||
fetchSingleYearRank(year)
|
||||
);
|
||||
results.push(result);
|
||||
}
|
||||
return results;
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user