Просмотр исходного кода

docs(kb): 90 §2.6 后延 ADR 低优先级加 plugin_factory 解耦

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
tianyu.chu 1 неделя назад
Родитель
Сommit
dc4d6747fa
1 измененных файлов с 1 добавлено и 0 удалено
  1. 1 0
      kb/90-重构路线.md

+ 1 - 0
kb/90-重构路线.md

@@ -203,6 +203,7 @@ L3   SparkSQL(...) 显式传参  +  extra_spark_config  +  命令行 -sc
 **低优先级**(有明确批量回刷场景再做):
 
 - 日期范围自动按日展开 + N 个 json 分发多 worker(`-start-date 20260401 -stop-date 20260410` → 自动切 10 份 json,每份独立选 worker)
+- **`plugin_factory` 解耦**:当前工厂模块顶层 eager import 所有 reader/writer(mysql/pg/mongo/hdfs/es/kafka/hbase/ch/...),任一 plugin 的 top-level import 破损就连累整个 DataX 链路(2026-04-23 已踩:`dw_base/database/` 删除后 `mysql_reader` 的 `MySQLColumn` import 挂,挂一扯一串)。改造方向二选一:(a) lazy import:`importlib.import_module(f"dw_base.datax.plugins.reader.{db_type}_reader")` 按需加载;(b) registry pattern:每个 reader 用 `@register("postgresql")` 装饰器自注册,工厂解耦于具体 plugin 列表
 
 **第三条命令 `datax-gc-generator`(ini 元生成器)独立保留**:用户已确认。职责是"从 PG 扫 schema 生成 ini 参考模板",和"执行 ini"不是一回事,不收口到上面两条里。详见 §2.7。