Commit Graph

12 Commits

Author SHA1 Message Date
DXC
d755367df0 fix(app.py): 移除异步任务中的全局 Config 状态覆盖
process_data_async() 函数:
- 原代码:调用 Config.update_directories_from_config(config_path) 全局覆盖
  Config.UPLOAD_FOLDER 和 Config.OUTPUT_FOLDER 类属性,
  然后同步到 app.config 字典
- 问题:多用户并发上传时,任务 A 的 YAML 配置可能覆盖任务 B 正在使用的目录路径,
  造成输出文件写入错误目录的竞争条件
- 修复:移除对 Config 类属性的全局覆盖调用,每个任务直接使用
  INI 配置的基础目录 + task_id 构建独立的任务目录 (job_upload_dir / job_output_dir),
  任务间目录完全隔离

影响范围:并发上传场景下的文件路径安全性
2026-07-10 14:48:44 +08:00
DXC
e16bd2976f fix(data_processor.py): 修复气压 NaN 值未填充导致验证失败的问题
calculate_pressure() 函数:
- 原逻辑:只在 max_samples 截断模式下用平均值填充剩余行的 NaN 气压值,
  正常全量计算时若某些高度档位 API 失败(返回 None),NaN 直接传播至数据验证器,
  触发 'Column pressure contains NaN values' ValueError,导致任务失败
- 修复:将 NaN 填充逻辑从条件分支中提取为通用处理,
  任何时候只要有有效气压值就用其平均值填充所有 NaN 行,
  并在统计信息中明确报告填充行数

影响范围:消除因 Open-Meteo API 波动导致的整任务失败
2026-07-10 14:48:35 +08:00
DXC
b7e389c3d7 refactor(qiya.py): 重构 Open-Meteo API 网络容错机制
修复连接频繁重置(ConnectionResetError/SSLEOFError)导致气压数据大面积缺失的问题:

1. TCP 连接复用:使用全局 requests.Session() 替代每次新建连接,
   避免频繁 SSL 握手导致的 SSLEOFError
2. 指数退避重试:实现 _exponential_backoff_request() 函数,
   首次失败后延迟 1s→2s→4s→8s 逐步重试(最多4次),
   超时从 30s 递增至 45→60→75→90s
3. LRU 缓存:新增 @lru_cache(maxsize=256) 缓存 _get_pressure_cached(),
   坐标四舍五入至4位小数作为缓存键,相邻高度档位的重复请求直接命中缓存
4. 时间回退:当 API 返回数据中无精确匹配时间时,自动取最近小时的
   气压值作为回退(替代直接返回 None)
5. 日志改进:区分 ConnectionError/SSLError/HTTPError,失败时明确记录重试信息

效果:预处理耗时从 ~185s 降至 ~25s,气压获取成功率从 83% 升至 100%
2026-07-10 14:48:26 +08:00
DXC
72a20adc87 fix(gas.py): 修复理想气体定律温度项重复相加错误
gas_density() 函数第 36 行:
- 原代码: (local_temperature_kelvin + standard_temperature) / standard_temperature
  物理错误:T_K 已在第32行完成 °C→K 转换(+273.15),这里又加了一次 273.15,
  导致体积修正因子偏大约 2 倍(对 7.4°C 数据:553.7/273.15≈2.03 而非正确的 280.55/273.15≈1.03)
- 修复: local_temperature_kelvin / standard_temperature
  符合理想气体定律 V₂ = V₁ × (P₁/P₂) × (T₂/T₁)

影响范围:所有通过 gas_flux_column() 计算的通量值,修复后通量约为原值的 2 倍
2026-07-10 14:48:17 +08:00
DXC
202eb238c7 交接修正 2026-04-20 14:44:27 +08:00
dd47ab5f44 常规更新 2026-04-20 09:43:21 +08:00
729b283f29 精简打包之前 2026-02-25 11:50:30 +08:00
af56c94efe 失败任务定时删除 2026-02-11 16:28:51 +08:00
b9828a1b13 重构: 切换存储至SQLite,启用INI配置与API Key校验 2026-02-09 17:10:11 +08:00
d5edbc0723 增加web_api 2026-02-05 15:13:54 +08:00
443ec09c5c 修改readme 2026-01-05 09:45:34 +08:00
f085d7c5fe Initial commit: GasFlux project with core processing pipelines 2026-01-05 09:33:27 +08:00