fix: install_stdio_hook幂等化——库文件(market_regime等)模块级_msh()被import时不再重复包装stdout(双写根因:per_stock_reassess→strategy_lifecycle→market_regime链,N层hook=N个buffer各flush一次=broadcast整块重复)

This commit is contained in:
xxm
2026-08-24 12:10:59 +08:00
parent 91464a7cb7
commit 9a3a6c782a
+6 -1
View File
@@ -211,7 +211,12 @@ def _job_title(script):
def install_stdio_hook(script_name=None):
"""在脚本入口调用:重定向 stdout 到 messenger 通道控制"""
"""在脚本入口调用:重定向 stdout 到 messenger 通道控制
2026-08-24 幂等化:已 hook 则直接复用不重复包装——库文件(如 market_regime)被 import
时其模块级 _msh() 会变成 no-op,否则 stdout 被包 N 层、N 个 buffer 各 flush 一次,
broadcast 整块重复(双写根因,per_stock_reassess→strategy_lifecycle→market_regime 链实锤)。"""
if isinstance(sys.stdout, _MessengerStdout):
return sys.stdout.channel # 已 hook:幂等返回,不再包装
if script_name is None:
script_name = os.path.basename(sys.argv[0]) if sys.argv else "mofin"
sys.stdout = _MessengerStdout(sys.stdout, script_name)