Summary
本次更新支持基于 DownloadControl 的协作式取消下载与多层级共享 Runtime 调度,重构批量下载结果为保序检索集合,降低默认图片并发配置,并优化多任务进度界面。
Added
- 新增
JmTempRuntime、JmSyncRuntime与JmAsyncRuntime;裸同步 Downloader 的局部调度使用临时单池 Runtime,顶层同步 API 或自定义同步调度可复用album/photo/image三层线程池,异步下载可复用decode线程池。 - 新增
DownloadControl和DownloadCancelledException,支持通过任务上下文协作式取消同步与异步下载;DownloadCancelledException支持通过completed_results与unfinished_ids读取批量取消时的已完成成果与未完成 ID。 BatchResult重构为独立类,保持输入 FIFO 原序并支持车号检索与下标访问,不再继承set。DownloadResult新增album和photo快捷实体访问属性。- 新增
JTC(Jm Task Context) 门面类,统一提供上下文、Runtime、Option 及取消控制器的快捷读取方法。 jmcomic --dry-run使用随机模拟任务预览多任务进度和重试日志,不请求网络、不下载图片、不写日志文件,也不加载--option配置;不能与--no-progress同用。
Changed
- 默认图片层下载并发配置
download.threading.image从 30 调整为 20。 - 下载调度统一使用标准库 Executor;顶层 API 和裸同步 Downloader 的临时调度显式关闭自己创建的 Runtime,
jm_task_context只传播字段;外部 Runtime 和 Executor 仍由调用方关闭。 - 顶层下载会把 Runtime 和 Option 作为公开字段直接放入任务上下文;Runtime 不依赖 Context 或 Option,未配置的层级由实际调用点传入默认 worker 数。
Fixed
- 同步和异步下载器共用一个动态进度界面与日志区,已结束任务保留到最后一个活动下载器退出,再统一关闭界面。
- 界面启动或渲染失败时清理注册状态;界面退出失败时仍执行下载器资源释放,避免影响后续下载。