backend.flow_controller¶
flow_controller ¶
类:
| 名称 | 描述 |
|---|---|
FlowController |
一个用于控制任务执行流程(如停止、暂停、恢复)的类。 |
FlowController ¶
一个用于控制任务执行流程(如停止、暂停、恢复)的类。
这个类是线程安全的,提供了以下功能:
- 停止任务执行(通过中断信号)
- 暂停/恢复任务执行
- 可中断和可暂停的 sleep 功能
- 流程状态检查
使用方法::
controller = FlowController()
# 在任务的关键路径上调用检查
controller.check()
# 使用可控制的 sleep
controller.sleep(1.0)
# 外部控制
controller.request_pause() # 暂停
controller.request_resume() # 恢复
controller.request_stop() # 停止
方法:
| 名称 | 描述 |
|---|---|
check |
检查当前流程状态。 |
sleep |
一个可被中断和暂停的 sleep 方法。 |
request_interrupt |
请求停止任务。 |
request_pause |
请求暂停任务。 |
request_resume |
请求恢复任务。 |
toggle_pause |
切换暂停/恢复状态。 |
clear_interrupt |
清除中断信号。 |
reset |
重置流程控制器到初始状态。 |
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
interrupt_event |
Event
|
中断事件,用于停止任务 |
paused |
bool
|
暂停标志 |
pause_condition |
Condition
|
暂停条件变量,用于线程间同步 |
is_interrupted |
bool
|
检查是否收到中断请求。 |
is_paused |
bool
|
检查是否处于暂停状态。 |
status |
Literal['running', 'paused', 'interrupted']
|
获取当前状态的字符串描述。 |
status
property
¶
status: Literal['running', 'paused', 'interrupted']
获取当前状态的字符串描述。
返回:
| 类型 | 描述 |
|---|---|
Literal['running', 'paused', 'interrupted']
|
状态描述,可能的值:'running', 'paused', 'interrupted' |
check ¶
check() -> None
检查当前流程状态。
如果收到停止请求,则抛出 KeyboardInterrupt 异常。 如果收到暂停请求,则阻塞直到恢复。
这是核心的检查点方法,应在任务的关键路径上(如循环或等待前)调用。
引发:
| 类型 | 描述 |
|---|---|
KeyboardInterrupt
|
当收到停止请求时 |
sleep ¶
sleep(seconds: float) -> None
request_pause ¶
request_pause(*, wait_resume: bool = False) -> None
请求暂停任务。
设置暂停标志,所有正在执行的任务将在下一个检查点暂停。 如果任务已经暂停,此操作无效果。