Task Flow 简介

2016-11-23  本文已影响2464人  Dream胡

认识Task Flow

TaskFlow是一个python库,用来简化任务的执行管理,同时,实现任务的一致性、可扩展和可靠性。TaskFlow支持创建不同的 task,并以声明的方式集成到一个 flow 中,这些 flow 会通过 engine 执行、停止、继续和恢复。

优点

概念示例

伪代码展示了 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... COMMIT

why

OpenStack 的代码正在有组织的增长,但是如果进程被意外中断,却没有一个可以安全恢复或回滚代码的标准;大多数项目并没有使 task 可以重启或恢复,简单的挑高或恢复的场景在今天的代码里已几乎不可能。通过Taskflow的推广,甚至在没有HA的情况下,使OpenStack变的可信和可靠。

一些使用场景

设计

  • Retry
    retry也是派生于一个atom,是一个特殊的单元,实现对错误的处理,控制flow的异常情况,必要时,能够以其他参数重试另一个atomretry基类的派生类必须提供on_failure()方法,实现对异常的处理。
  • 参考

    TaskFlow官方文档
    An Introduction to OpenStack TaskFlow with Python

    上一篇 下一篇

    猜你喜欢

    热点阅读