v1.9.9 — 修复并发扫描 Pickle Bug
v1.9.9 修复并发扫描 Pickle Bug
问题
--workers N 并发模式使用动态 importlib 加载的策略类时,子进程无法 pickle 反序列化,导致静默返回空结果。
根因
ProcessPoolExecutor 将策略类对象 pickle 序列化后发送到子进程。动态加载的类模块(如 strategy_module)未注册到子进程的 sys.modules,反序列化失败。异常被 except Exception: continue 静默吞掉。
修复
_scan_parallel改为传递策略文件路径(字符串),子进程内自行通过_load_strategy_class加载- 新增
_get_strategy_file:从类方法co_filename反查策略源文件路径 - 新增回归测试
TestParallelPickleFix
验证
- 381 测试全部通过(含新增回归测试)
- ruff check 全绿
- 并发模式
--workers 4现在可正常返回信号
Full Changelog: v1.9.8...v1.9.9