2.0 KiB
2.0 KiB
LSFX Mock 规则命中模式后端实施记录
修改范围
lsfx-mock-server/config/settings.pylsfx-mock-server/main.pylsfx-mock-server/dev.pylsfx-mock-server/services/file_service.pylsfx-mock-server/tests/test_startup.pylsfx-mock-server/tests/test_file_service.pylsfx-mock-server/README.md
本次改动
- 为 Mock 服务新增统一配置项
RULE_HIT_MODE,默认值为subset。 - 在
main.py中新增parse_args()与启动前模式注入逻辑,支持--rule-hit-mode subset|all。 - 新增项目级热重载入口
dev.py,支持python dev.py --reload --rule-hit-mode ...。 - 在
FileService中将规则命中计划拆分为:subset模式:沿用按logId稳定随机命中子集all模式:返回全部兼容规则命中计划
- 新增显式互斥组入口
RULE_CONFLICT_GROUPS,当前实现默认为空列表,仅预留结构与裁剪逻辑。
规则命中模式语义
- 默认模式保持为
subset,不传参数时仍按同一logId生成稳定随机子集。 all的准确语义是“全部兼容规则命中”,不是无约束全量命中。- 当前四类规则池在
all模式下会返回各自全集,再经过互斥组裁剪。 - 当前互斥组配置为空列表,因此默认不会额外裁剪任何规则;后续若新增互斥组,将按组内顺序保留首个规则。
启动入口调整
- 普通启动入口更新为:
python main.py --rule-hit-mode subsetpython main.py --rule-hit-mode all
- 热重载入口统一改为项目脚本:
python dev.py --reload --rule-hit-mode subsetpython dev.py --reload --rule-hit-mode all
- README 已同步改为“全部兼容规则命中”口径,不再使用“全部规则命中”。
实施结果
FileService -> StatementService -> FileRecord 缓存主链路保持不变。- 默认随机子集行为未回归。
all模式已支持通过启动参数显式切换。- 热重载启动不再依赖裸
uvicorn main:app --reload ...透传业务参数。