openstack-taskflow 组件记录

TaskFlow 是一个为了 openstack 实现的 python 库,使得执行 task 变得简单,一致,易扩展,可靠;

它能以一种声明的方式,将轻量级 task 对象的创建与 flows 结合起来;

它以一个可以声明的方法可以使得其包含的 engines 去运行这些 flows,这些 flow 可以被停止,继续,或者是安全回滚

使用 TaskFlow 可以享受以下特性:

更多的弹性状态;

自然声明构造

更易于测试(由于 task 包括且只包括一件事);

工作流插件化

容错性;

简化 crash 后的恢复

   

Why TaskFlow?

如今 openstack 代码已经有组织的增长,但是对于去操作序列化的代码,没有一个标准和一致的方法,使得当调用过程意外被终止时,代码流程可以安全的继续或者回滚;

大多数 projects 甚至没有让 tasks 可重启与可恢复;

简单的跳过或者恢复的场景在如今的代码里已经几乎不可能;

Task 可以轻松地解决这些问题;

   

Conceptual example

下面这段伪代码描述了一个 flow 是如何像 sql 事务一样工作的;

START TRANSACTION

task1: call nova API to launch a server || ROLLBACK

task2: when task1 finished, call cinder API to attach block storage to the server || ROLLBACK

...perform other tasks...

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssyzf.html