Skip to content

v2.6.0-emby

Latest

Choose a tag to compare

@jinlin-teck jinlin-teck released this 17 Aug 14:09

🛠 优化

  • 导出/恢复并行化:导出与恢复任务从串行循环改为按"最大并发数"受限并发处理,大批量备份/恢复速度显著提升
  • 消除重复媒体流查询:每次处理的媒体流仓储查询从 3~4 次降为 1 次
  • 新入库事件早退:已具备完整媒体信息的 STRM 项直接跳过,不再排队和延迟
  • 明确恢复与探测职责:恢复(纯本地)与探测(远程)拆分为独立操作,坏 JSON 降级由任务层统一编排
  • 取消语义完整化:任务取消后 Emby 正确标记为"已取消"而非成功完成;进度报告单调递增
  • 清理死代码与冗余:抽取计划任务基类,移除无调用方的方法与冗余字段

🐛 修复

  • 修复提取任务节流失效:处理延迟移到持有并发槽位、探测之前,真正限制对远程媒体的突发压力;JSON 恢复仍不延迟
  • 修复坏 JSON 降级绕过节流:JSON 损坏或恢复失败后的降级探测现在同样经过延迟和并发限制
  • 修复批量恢复无限并发:提取任务中所有项目(含 JSON 恢复)统一受"最大并发数"限制,避免大量并发写入 Emby 仓储

🛠 Improvements

  • Parallel export/restore: Export and restore tasks now run with bounded concurrency (MaxConcurrency) instead of a serial loop, significantly speeding up bulk backup/restore
  • Eliminated redundant media stream queries: Repository queries per item reduced from 3~4 to 1
  • Early exit for new items: STRM items that already have complete media info are skipped immediately without queueing or delaying
  • Clear separation of restore vs. probe: Restore (local-only) and probe (remote) are now independent operations; fallback from broken JSON is orchestrated by the task layer
  • Complete cancellation semantics: Cancelled tasks are now correctly marked as "Cancelled" by Emby instead of completed; progress reporting is monotonic
  • Dead code cleanup: Extracted a shared scheduled-task base class; removed unused methods and redundant fields

🐛 Fixes

  • Fixed ineffective throttling in extract task: The processing delay now applies while holding the concurrency slot, before probing, truly limiting burst pressure on remote media; JSON restore still runs without delay
  • Fixed throttling bypass on broken JSON fallback: Fallback probing after corrupted JSON or restore failure now goes through the same delay and concurrency limits
  • Fixed unbounded restore concurrency: All items in the extract task (including JSON restores) are now bounded by MaxConcurrency, avoiding heavy concurrent writes to the Emby repository

Full Changelog: v2.5.2-emby...v2.6.0-emby