| 概念 | 说明 |
|---|---|
| 执行器 | 执行器是用于执行任务的进程,可以将它理解为执行任务的 Agent,它通过 TCT SDK 和 TCT 进行交互,接受 TCT 任务的调度并执行,目前 TCT SDK 只有 Java 版本,因此执行器也只支持 Java。 有时候我们也会将执行器称之为任务应用。 |
| 部署组 | 部署组是执行器的一个逻辑集合,不同的执行器实例通过 TCT SDK 注册到 TCT 的一个部署组中(通过执行器的配置参数),一个部署组中的执行器实例是完全对等的。例如在 k8s 中,一个 Deployment 对应一个部署组,其中的一个 Pod 即对应于一个执行器实例。 在 TCT 里,任务的调度是在一个部署组内进行的,例如广播执行、分片执行都是在部署组中的执行器上进行调度。 |
| 批次 | 在 TCT 里,我们将任务或者工作流的一次触发执行称之为批次(Batch),因此会有任务批次(TaskBatch)和工作流批次(FlowBatch)的概念。一个批次可以被任意手动重试,一次手动重试会产生一次新的执行(流水),所有的这些执行流水统一构成一个批次,这也是批次概念的由来。 |
| 流水 | 流水(Log)是和批次紧密相关的概念,在 TCT 中任务或者工作流的一次执行(Batch)可以被手动重试,一次重试会产生该批次的一次新的流水(BatchLog),因此有任务批次流水(TaskBatchLog)和工作流批次流水(FlowBatchLog)的概念。 TCT 中任务和工作流的每一次具体的执行都对应一个批次流水,而每个批次流水都属于一个批次。任务或工作流被触发一次,会产生一个批次(Batch),同时产生该批次下的一个批次流水(BatchLog)对应于此次执行,如果后续该批次被重新执行,会在该批次下产生新的批次流水。 |
| Execute | 在 TCT 中,一个任务最终会被拆成一个个子任务调度到执行器中执行。随机单点执行的任务会产生一个子任务调度到随机选定的一个执行器中执行;广播执行的任务会产生 N(部署组中执行器实例个数)个子任务分别调度到各个执行器中执行;分片执行(分片数 M)的任务会产生 M 个子任务调度到各个执行器中执行。 在 TCT 中,因为历史原因我们将子任务称之为一个 Execute,因为一个子任务也可以被重试,因此也有 ExecuteLog 即子任务流水的概念,一个 Execute 可以包含多个 ExecuteLog。 |