数据模型
技术实现时涉及到的几个重要的数据模型。
任务定义 [ 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)