跳转到: 导航, 搜索

TaskFlow/Engines

修订于: 2014年3月15日 由 Harlowja

引擎

引擎是真正运行你的tasksflows 的组件。

4StrokeEngine Ortho 3D Small Mini.gif

引擎接收一个 flow 结构(由模式描述),并使用它来决定何时运行哪个 task

可能存在不同引擎的实现。有些可能更易于使用(例如,不需要额外的基础设施设置)和理解,而另一些可能需要更复杂的设置,但提供更好的可扩展性。理念和理想是,使用 taskflow 的服务的部署者/开发者可以选择最适合其设置的引擎,而无需修改该服务代码。这允许部署者/开发者从使用更简单的实现开始,并在服务增长时扩展由 taskflow 提供支持的服务。从概念上讲,所有引擎都应实现相同的接口,以便轻松地用一个引擎替换另一个引擎,并提供相同的模式解释保证——例如,如果引擎运行线性流程,则无论实际运行该线性流程的引擎类型如何,任务都应按顺序一个接一个地运行。

注意: 引擎可能具有不同的功能/配置,但总体而言,接口保持相同,并且对使用 taskflow 的开发者和用户应该是透明的。

支持的类型

分布式

当你希望你的应用程序的 tasksflows 在一个高度可用且对单个故障具有弹性的系统中执行时。

通过 RPC 分布式

支持以下内容

  • 通过 kombu 支持的传输连接的远程工作者。
  • 结合任务队列,提供了一个高可用的引擎编排器和工作者组合。
  • 以及更多…

传统

当你希望你的 tasksflows 在你的应用程序现有框架内运行,同时仍然利用所提供的功能时。

支持以下内容

  • 使用基于线程的 executor 的线程引擎。
  • 使用提供的 eventlet green线程为基础的 executor 的线程引擎。
  • 使用不使用线程的单线程引擎。
  • 以及更多…