Skip to content

流程控制接口

介绍

流程控制接口:提供任务脚本的子脚本调用、后台并发执行、任务暂停/恢复/终止等逻辑控制功能。

重要说明:以下函数由任务引擎在运行时自动注入到任务脚本的执行环境中,无需 import,直接调用即可。这些函数仅在通过 /sdk/execute_task 执行的任务脚本中可用。

功能Python
同步执行子脚本
后台并发执行子脚本

子脚本调用

Python接口

run_script(source, parameters=None)

功能说明
同步执行子脚本,阻塞直到子脚本执行完成。子脚本在父脚本命名空间的浅拷贝中运行,可访问所有预加载的 API,但子脚本的变量写入不影响父命名空间。

参数说明

参数名类型必填/默认值说明
sourcestr必填task_id 或相对于 $DAYSTAR_DATA_ROOT/scripts/ 的路径(无需 .py 后缀)。
parametersdict默认: None注入子脚本命名空间的参数字典,子脚本通过 parameters["key"] 访问。

返回值

无返回值。异常时抛出 ScriptErrororiginal_exc 属性含原始异常)或 FileNotFoundError

调用示例

python
# 串行执行子脚本
run_script("patrol_task")

# 传递参数给子脚本
run_script("patrol_task", parameters={"zone": "A", "speed": 0.5})

run_parallel_script(source, parameters=None)

功能说明
在后台 daemon 线程中异步执行子脚本,立即返回 ThreadHandle,不阻塞主脚本。后台线程受协作式 tracer 控制:主任务暂停时后台线程同步暂停;线程异常只记录到 stderr,不影响主脚本执行。

参数说明

参数名类型必填/默认值说明
sourcestr必填task_id 或相对于 $DAYSTAR_DATA_ROOT/scripts/ 的路径(无需 .py 后缀)。
parametersdict默认: None注入子脚本命名空间的参数字典。

返回值

类型说明
ThreadHandle后台线程句柄。join(timeout) 等待完成;is_done() 检查是否结束;cancel() 发送取消信号。

调用示例

python
# 启动后台监控,主脚本继续执行
handle = run_parallel_script("monitor_battery")

navigation_to_location("PointA")
navigation_to_location("PointB")

handle.join()  # 可选:等待监控线程结束