init: Prefect ETL sync project (RIIN/SDS → PG) with 12 sync flows

This commit is contained in:
yeuimu
2026-07-23 08:13:09 +00:00
commit 4cba1da4e1
41 changed files with 6219 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
"""并发执行辅助:线程池 + 信号量,对应 TS SDK 的 ConcurrentLimiter(默认 10)。"""
from __future__ import annotations
from collections.abc import Callable
from concurrent.futures import ThreadPoolExecutor
from typing import Any, TypeVar
T = TypeVar("T")
_DEFAULT_CONCURRENCY = 10
def run_concurrent(
funcs: list[Callable[[], T]],
limit: int = _DEFAULT_CONCURRENCY,
) -> list[T]:
"""并发执行一批无参 callable(每个返回一个结果),保持输入顺序返回结果。"""
if not funcs:
return []
with ThreadPoolExecutor(max_workers=max(1, min(limit, len(funcs)))) as pool:
return list(pool.map(lambda fn: fn(), funcs))