Origin X Documentation

天行有常,不为尧存,不为桀亡。——荀子《天论》

任务通道详解

任务通道和接口通道有些不同,是因为任务通道多了两个组件:JobIncome/JobOutcome,而本文重点讲解这两个组件在任务开发过程中的数据流位置,以及如何和主通道通信。

1. 任务通道结构

任务通道比主通道的结构要简单很多,它的整体结构如下:

那么JobIncomeJobOutcome是干什么的呢?任务通道属于主动通道,也就是说在开发过程中,它不会通过前端的任何请求来触发(ONCE类除外),而是系统在后台主动执行。

2. 任务流程

任务架构主要来自于zero框架本身,参考下图查看任务执行流程:

任务通道中定制的就是JobIncomeJobOutcome组件,这两个组件执行于核心组件的前置和后置,整理起来任务执行流程如下:

  1. 任务先从incomeAddress中消费输入数据作为初始输入。
  2. 将输入数据传入到incomeComponent组件中执行。
  3. 运行主通道serviceComponent,该组件运行时,会配合通道 + 插件结构,包括映射管理器、标识选择器等。
  4. 执行完主通道后,数据会传入到outcomeComponent组件中执行。
  5. 执行完成后,最终数据会发布到outcomeAddress地址上。
  6. 最后会有一个@Off方法来执行outcomeAddress上的回调操作,该操作不可配置,只能通过编码方式来处理,在Origin X中没有使用这步操作。