实验运行调度管理器
运行调度机制:队列集中入队,worker 按优先级/预约时间取任务执行。
概述
实验运行调度由 实验队列 + 执行引擎 协作完成:ExperimentQueue 的 submit() 是
GUI 线程的唯一入队入口(集中分配任务号,准备台与循环器也经它入队);常驻 worker
在 ExperimentManager.queue_fn 中轮询任务字典,按 优先级 → 任务号 → 预约时间
(due_check)挑选任务并执行(measurement → sequence → run)。
相关组件
| 组件 | 模块 | 说明 |
|---|---|---|
ExperimentQueue | experiment/experiment_queue.py | 任务队列:入队、状态跟踪、暂停/终止 |
ExperimentManager | experiment/experiment_manager.py | 执行引擎:取任务、跑测量/序列/运行 |
PrepStation | experiment/prepstation.py | 预备任务,推送入队 |
Looper | looper/ | 条件循环,经 submit 入队 |
调度流程
PrepStation / Looper / 实验窗口 --submit()--> 队列任务字典
↓
ExperimentManager.queue_fn(worker 线程,按优先级/任务号/预约时间)
↓
start_measurement → start_sequence → 多次 run → end_sequence → end_measurement
运行时支持暂停 / 恢复(pause)与优雅终止(terminate_experiment,Termination
Pending)。