Chronaxis用户手册English
本页目录相关类型对象导航run_batch参数返回说明异常说明调用示例

chronaxis.batch.api

执行一份批量计划,并返回每个任务的状态和结果目录。任务按同一套AnalysisRunner接口运行;批量报告写出失败时,异常上的batch_report仍可用于查看已完成的任务和关闭资源。

这是模块参考。日常调用先查公开API索引;下划线对象和嵌套函数供维护者查阅。签名来自固定源码,公开类构造签名经实际Python接口核对。

相关类型

BatchPlan、BatchRunner

对象导航

对象 用途
run_batch 执行一批独立分析并写出批量报告。使用spawn工作进程,各任务单独加载、分析、发布和清理;在Python脚本的main保护内调用。
导入与重导出来源(展开)
python
from dataclasses import replace
from .models import BatchPlan
from .runner import BatchRunner
from .publication import write_batch_report

run_batch

执行一批独立分析并写出批量报告。使用spawn工作进程,各任务单独加载、分析、发布和清理;在Python脚本的main保护内调用。

python
run_batch(plan: BatchPlan, output_dir, *, process_count: int | None=None, cancel_event=None, device_label='pending')

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
plan BatchPlan 是 无 位置或关键字。指定要执行的批量任务及调度设置。传入load_batch_plan("batch.yaml")取得的BatchPlan,不能直接传文件名或普通分析计划。
output_dir str | Path 是 无 位置或关键字。可重复使用的批量结果目录;任务子目录带本批时间后缀,已有结果保持。实际路径从报告读取。
process_count int | None 否 None 仅关键字。覆盖本次分析工作进程数。填正整数,例如4;None沿用BatchPlan.process_count,不修改原计划。
cancel_event threading.Event | None 否 None 仅关键字。可选取消标记;None表示没有。其他线程调用set()后停止派发新任务,正在执行的任务继续收尾。
device_label str 否 'pending' 仅关键字。产出记录的设备标签,接受任意非空文本,如lab-pc或试验台一号;省略时使用pending。标签不参与计算,也不根据文件路径猜测。

返回说明

BatchReport;report_path为本次实际报告,jobs各项的manifest_path为实际完成清单。failed/cancelled保留在报告,不伪装全部成功。

异常说明

TypeError:plan不是BatchPlan或取消对象类型不合法。ValueError:并发/后端/任务声明不合法。目录创建、调度或报告发布失败按具体异常类型抛出;若已产生报告,异常batch_report保存实际进度,调用者仍须close处理cleanup_pending。单任务失败通常保存在报告jobs中,不作为整个函数抛错。见按阶段处理错误。 worker构造期间KeyboardInterrupt且清理未完成时,原异常还可带batch_worker_cleanup_owner;未完成构造的worker可能不在报告任务中,须对实际存在的该对象重试close。

调用示例

python
from chronaxis import load_batch_plan, run_batch

def main():
    # 先准备batch.yaml;batch-output可以已有结果。
    report = run_batch(load_batch_plan("batch.yaml"), "batch-output")
    try:
        print(report.report_path)
    finally:
        report.close()

if __name__ == "__main__":
    main()

源码:src/chronaxis/batch/api.py:13(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

Chronaxis 用户手册 · 离线阅读