VeighNa · 第 4 章 MainEngine 与插件装配 章节摘要:本章精读 VeighNa 的装配中枢—— (838 行)。MainEngine 是"什么都不做的核心":它本身不实现任何交易逻辑,只持有四个 dict(gateways/engines/apps/exchanges),通过 addgateway/addapp/addengine 动态装配。所有对外 API(connect/subscribe/sendorder...)都是委托式透传给具体 gateway。本章最精彩的是 Facade 技巧——OmsEngine 的 19 个查询方法被"提升"为 MainEngine 的属性,外部无需知道 OmsEngine 存在。
章节摘要:本章精读 VeighNa 的装配中枢——
engine.py(838 行)。MainEngine 是"什么都不做的核心":它本身不实现任何交易逻辑,只持有四个 dict(gateways/engines/apps/exchanges),通过 add_gateway/add_app/add_engine 动态装配。所有对外 API(connect/subscribe/send_order...)都是委托式透传给具体 gateway。本章最精彩的是 Facade 技巧——OmsEngine 的 19 个查询方法被"提升"为 MainEngine 的属性,外部无需知道 OmsEngine 存在。本章还会讲四大内置引擎:LogEngine(日志)、OmsEngine(订单管理,事件订阅+字典缓存)、EmailEngine(懒启动异步邮件)、WechatEngine(4.4 新增,节流合并微信推送)。本章共 3 节,前置依赖为第 1~3 章。
阅读完本章,你应当能够:
MainEngine 什么都不做,只装不实现——这是"核心+插件"架构的精髓。
init 四个 dict;add_engine/add_gateway/add_app 三件套;init_engines 装配四大内置引擎 + Facade 提升 OmsEngine 方法;委托式交易 API 统一模式;close 生命周期。
9 个缓存字典 + 2 个 active 子集;register_event 订阅 7 类事件;process_xxx 三段式(缓存+active子集+OffsetConverter);get_xxx 查询方法;OffsetConverter 懒初始化。
LogEngine(loguru + EVENT_LOG);EmailEngine(懒启动 + SMTP_SSL + 异步队列);WechatEngine(4.4 新增,凭据持久化 + 节流合并 + 消息回填重试)。
本章第 01 节(装配中枢) ──► 第 02 节(OmsEngine 状态) ──► 第 03 节(辅助引擎) │ ▼ 下一章(第 5 章 网关与应用抽象)
前置知识:
后续延伸: