数据模型

技术实现时涉及到的几个重要的数据模型。

任务定义 [ Task ]

任务是本系统中最重要的概念,它描述了一个任务的整个生命周期的配置。

元数据 ( Meta )

任务 ID,名称,创建时间等等各种管理信息。

节点要求 ( Scope )

用一个字符串列表表示对于节点的能力要求。

输入 ( Inputs )

调用一个任务时的输入描述,分为必须提供的和可选提供的。

工作节点步骤 ( Worker Steps )

工作节点将顺次执行每个步骤。

所有支持的步骤详见步骤类型章节。

服务端步骤 ( Queen Steps )

在任务结果返回云端后,云端也可以选择执行一些步骤。

任务实例 [ Instance ]

每当调用一个任务,就会生成一个任务实例。任务实例除了携带任务定义外,还会有以下内容。

输入 ( Inputs )

任务所需的输入。

额外节点要求 ( ExtraScope )

调用任务时可以提出对工作节点的额外要求,用以提供对任务进行编排的可能。

额外要求会与任务定义内的要求取并集,当是节点 Scope 子集的时候才能成功匹配。 比如可以要求匹配一个地理位置必须在四川,要有执行浏览器任务的能力,今天还没有执行过这个任务的节点。

上下文 ( Context )

上下文会携带任务发起方的一些信息。后面我们会知道,任务执行时也可以触发新的任务实例,所以 Context 有可能在任务中链式传递。

任务结果 [ Result ]

任务结果是任务在工作节点执行后生成的一个结果对象,它会被返回云端等待后续处理。

结果默认状态下只有成功或失败的状态,若失败时可能携带错误信息。若任务定义中要求返回一些结果数据,也会返回。

任务触发器 [ Trigger ]

除了利用接口调用任务,还可以配置多种自动触发并调用任务的触发器。 一个任务可以被配置多个触发器。

目前支持如下类型的触发器:

计划任务 ( Cron )

通过配置一个 Cron,并指定输入,可以配置一个定时执行的计划任务。

最后修改 June 20, 2020: worker process (56974e8)