2026-11-12 3号采集逻辑整改结果 本轮从台北00:17:44开始记录十分钟预算,在00:27:20设定保守绝对截止;已于截止前停止所有采集并完成交付。没有重置总时钟。 已修改并部署 默认update_daily.py/run_daily.py改为recent-v1-20261112;新增recent_fetch.py。只请求七个日历日,55标的同一队列、最多8个网络工作线程,每来源家族最多2或3个并发,数据库单一写入者。 主源和首备源对齐完整请求日期后,按原有收盘价容差一致即停止。缺失/冲突/访问失败才升级,允许两份可比备源确认;腾讯原价与前复权不算两份独立票。未扩大容差:证券0.001、加密0.005,仅收盘价比较,分红/复权/成交量不因此获认证。 默认不再运行旧ECB/FRED独立全量任务、全库报告、全库备份核验、历史审计或工单修复。旧collector auto/incremental入口拒绝执行;独立旧resilience入口须显式历史维护标志,避免旁路自动巡检。旧源码保存在Linux /opt/investment-data/archive-recent-20261112,历史研究和数据未删除。 正式行数据只查询/写入明确近期窗口;最多读取一个前序有效收盘作边界检查。发现历史价格或复权修订时,不自动重抓或拼接,把原响应和近期观测保存在raw_responses/recent_observations并标记canonical暂缓。此次实际无canonical写入异常。 StockAnalysis公共页面没有已验证的日期范围参数,近期入口不会为第三源拉额外50日页面;若其为唯一剩余来源则明确未完成,不能伪装已查。 硬截止 run_daily独立监督worker进程组,首轮不超过300秒,总截止不超过同一请求起点600秒,并接受更早的绝对截止。HTTP、信号量、SQLite执行和Windows SSH等待传递剩余预算。超时杀死并回收worker进程组,保存已完成/待完成和实际发出的请求日志,不留后台继续跑。 失败后的诊断/修正再试必须沿用原--deadline-epoch;本次78秒已遍历完55标的,剩余是外汇口径不足,非超时。未对同一不可比参考源盲目重试,也未以增加预算或放宽容差追求55/55。 真实55标的验证 请求范围2026-11-05至2026-11-11,按各市场已经完成的交易日比较。 整批实际运行78.46970582秒,55个标的都有结果,pending为空;53个price_confirmed、2个unresolved,因此success=false,不能说55/55全部验证通过。 请求计数:Yahoo55、Nasdaq46、腾讯5、搜狐5、Coinbase2、ECB2、加拿大央行2,总计117。未调用EODHD或收费接口。 48个标的首备源一致后即停止。5个国内ETF因Yahoo当次11月11日有效数据不足而升级;腾讯与搜狐在窗口内一致。没有请求其余美股/加密备源。 所有55个标的请求日期内available_dates无缺口;但CNY=X、JPY=X只有ECB定盘和BoC日均参考,无法与Yahoo收盘同口径认证。这两项保留未完成,未采购/引入未经验证的新源。 本次价格确认不改变之前TLT/BIL公司行动遗漏和C6独立研究调整版本的结论。 测试、部署和停止状态 本机及Linux五项针对性测试通过:缺失/冲突拒绝、一致短路、失败升级、截止后零请求、300/600预算计算。 真实短截止测试确认worker进程组被杀死并回收,返回incomplete、success=false,未发出网络请求;未以等待完整300秒做阻塞压力测试。实时请求统计在recent-attempts-.jsonl,含请求启动和完成,超时也可保留真实请求数。 真实运行后无残留run_daily --worker进程。采集service为failed是两项未确认导致非零退出的如实结果,不是后台仍运行;health和repair服务inactive。三者Restart=no,三个timer均disabled,未重启健康服务。 实际运行核心recent_fetch/run_daily/update_daily字节与最终部署一致;最后补上的collector/resilience旧旁路保护未重新跑全池,Linux定向测试通过,部署哈希已封存。 证据 实际55标的结果.json:逐标的、日期、逐源请求/升级原因/缺失冲突及入库结果。 最终部署与截止清理验证.json:最终代码SHA256、测试结果、截止清理、停止/调度状态。 部署与测试.txt:首次部署及Linux测试。 deployment-final.zip:本次修改后的源码包,文件索引与验收.json保存指纹。 未完成 2项外汇的同口径备源认证;没有把参考定盘价强认作收盘备源。真实网络阻塞时的完整300秒压力场景未另跑。后续明确授权的历史任务仍须单独给定范围;旧full模式只为显式历史维护保留,不作为日常入口。