05635b76b9
状态: - 9 个 sync task(stock_basic / kline_daily / kline_index / kline_5min / moneyflow / industry_sector / sector_features / share_snapshot / market_regime) - 数据源:baostock + mairui + 雪球(pysnowball) + 新浪(4 个) - 项目级约束:永远不用 akshare(已落实) - kline_5min 改用 DB 快照统一全量/增量逻辑 - 零后端 Chrome 扩展 xueqiu_sync(独立项目)
40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
"""同步任务注册表。
|
|
|
|
所有 `SyncTask` 子类在此集中注册,外部通过 `get_task(dataset_id)` 或
|
|
遍历 `TASKS` 字典使用。
|
|
"""
|
|
from app.tasks.task_industry_sector import SyncIndustrySector
|
|
from app.tasks.task_kline_5min import SyncKline5Min
|
|
from app.tasks.task_kline_daily import SyncKlineDaily
|
|
from app.tasks.task_kline_index import SyncKlineIndex
|
|
from app.tasks.task_market_regime import SyncMarketRegime
|
|
from app.tasks.task_moneyflow import SyncMoneyflow
|
|
from app.tasks.task_sector_features import SyncSectorFeatures
|
|
from app.tasks.task_share_snapshot import SyncShareSnapshot
|
|
from app.tasks.task_stocks_basic import SyncStocksBasic
|
|
|
|
TASKS: dict[str, type] = {
|
|
cls.dataset_id: cls
|
|
for cls in (
|
|
SyncStocksBasic,
|
|
SyncKlineDaily,
|
|
SyncKlineIndex,
|
|
SyncKline5Min,
|
|
SyncMoneyflow,
|
|
SyncIndustrySector,
|
|
SyncSectorFeatures,
|
|
SyncShareSnapshot,
|
|
SyncMarketRegime,
|
|
)
|
|
}
|
|
|
|
|
|
def get_task(dataset_id: str):
|
|
"""通过 dataset_id 取同步任务类实例,找不到抛 KeyError。"""
|
|
if dataset_id not in TASKS:
|
|
raise KeyError(f"未知的同步任务: {dataset_id!r},可选: {sorted(TASKS)}")
|
|
return TASKS[dataset_id]()
|
|
|
|
|
|
__all__ = ["TASKS", "get_task"]
|