#工作流程 #执行 #工作 #未来 #反应器 #引擎 #toca

bin+lib 执行引擎

Toca 执行引擎,使用 futures 和 async/await 实现

5 个版本

0.1.4 2022 年 3 月 1 日
0.1.3 2022 年 3 月 1 日
0.1.2 2022 年 3 月 1 日
0.1.1 2022 年 3 月 1 日
0.1.0 2022 年 3 月 1 日

#1373 in 异步

MIT/Apache

46KB
776

执行引擎 MkII


EE 被分为 2 个主要部分

  1. 执行器 - 负责驱动工作流完成,应包含每个工作流执行所需的所有对象,将其视为运行时。
  2. 反应器 - 负责在 future 可以继续前进时通知执行器,这是通过 Waker API 实现的。

当工作流被发送到 EE 时,流程如下

  1. 创建一个新任务,该任务将执行与完成工作流相关联的所有工作
  2. 将工作流反序列化为 Job,Job 类型应尽可能准确地描述实体
  3. 推动工作流前进,这使用基于事件的流来完成

当工作流达到无法继续前进的点(例如,等待机器人锁定或等待活动完成)时,应使用 Rust 的 async/await 的底层机制释放执行。

依赖项

~21–36MB
~674K SLoC