本次提交包含多类改进: 1. 清理冗余空行、修复导入格式与类型检查占位 2. 新增external_systems与scheduler上下文的handler注册框架 3. 补全调度器相关配置项与环境变量覆盖逻辑 4. 新增配置校验与敏感字段脱敏逻辑 5. 简化协议方法声明格式
46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
"""external_systems 模块的定时任务 handler 注册入口。
|
||
|
||
本模块是 external_systems 限界上下文接入 scheduler 限界上下文的唯一登记点,
|
||
对齐 scheduler 上下文设计方案 §14.3 的"业务域 container 主动注册"模式。
|
||
|
||
与 ``infrastructure/container.py`` 同级,遵循 external_systems 的分层约定:
|
||
装配逻辑集中在 ``infrastructure/``,包根不出现装配代码。
|
||
|
||
对外暴露:
|
||
|
||
- ``register_scheduler_handlers(registry)``:业务模块注册函数,由 worker
|
||
启动钩子(``services/run_worker.py`` 的 ``_worker_startup``)统一调用。
|
||
内部实例化本模块的 handler 并调用 ``registry.register(handler)``。
|
||
|
||
边界规范:
|
||
- 本模块是 external_systems 接入 scheduler 的**唯一装配点**
|
||
- handler 的依赖(如 ``session_factory``)在函数内部构造,不暴露给装配层
|
||
- 新增 handler 时,在本函数内追加 ``registry.register(...)`` 即可,无需改
|
||
``run_worker.py``(前提:本模块已登记在 ``_BUSINESS_HANDLER_REGISTRARS``)
|
||
"""
|
||
|
||
from __future__ import annotations
|
||
|
||
from yuxi.scheduler.framework.runtime import HandlerRegistry
|
||
from yuxi.storage.postgres.manager import pg_manager
|
||
|
||
__all__ = ["register_scheduler_handlers"]
|
||
|
||
|
||
def register_scheduler_handlers(registry: HandlerRegistry) -> None:
|
||
"""向 scheduler 注册 external_systems 模块的定时任务 handler。
|
||
|
||
由 worker 启动钩子在装配阶段统一调用。新增 handler 时在此函数内追加
|
||
``registry.register(...)`` 即可。
|
||
|
||
Args:
|
||
registry: worker 进程级 handler 注册表。
|
||
"""
|
||
session_factory = pg_manager.get_async_session_context
|
||
|
||
# 在此追加 external_systems 的定时任务 handler 注册
|
||
# registry.register(
|
||
# XxxHandler(session_factory=session_factory),
|
||
# )
|
||
_ = session_factory # 暂无 handler,占位避免未使用告警
|