任务回调
任务回调用于 主动通知 外部系统关于任务本身的状态或其他信息。回调可以发生在任务的任何生命周期过程,一般发生在整个任务完成或者子任务完成之后。任务的回调可以同时有多个。
设置任务回调¶
可以通过WEB控制台在任务创建时的任务回调配置项里面设置任务的回调信息。
回调参数¶
任务回调参数除一些固定参数外,还可以通过一些特殊变量以回调任务和工作流相关动态信息和参数。 任务回调支持的参数列出在下表中。
参数名称 | 参数标识 | 参数类型 | 参数说明 |
---|---|---|---|
任务状态 | job.uid | string | 当前的任务ID |
任务状态 | job.name | string | 当前的任务名称 |
任务状态 | job.status | string | 当前的任务状态 |
任务输出 | job.inputs.parameter_name | string | 当前的任务输入参数parameter_name的值 |
任务输出 | job.outputs.parameter_name | string | 当前的任务输出参数parameter_name的值 |
例如,希望将任务的uid和输出参数中的m3u8file文件回调给外部系统,可以按照如下方式配置回调地址:
http://example.com/argon/callback?jobid=${job.uid}&file=${job.outputs.m3u8file}
自定义节点回调¶
除平台预定义的任务工作流结束后回调外,如果希望在工作流的某个步骤或者中间过程回调外部系统,可以采用独立的自定义 外部回调工作流节点 或者将回调逻辑嵌入到某个已有节点中。
外部回调节点
外部回调节点是平台提供的专门提供的用于回调外部系统的独立镜像节点。其输入参数和配置参数如下:
参数名称 | 参数标识 | 参数类型 | 参数说明 |
---|---|---|---|
输入参数 | condition | boolean | 只有当condition的条件为真时,才会触发回调 |
输入参数 | querystring | string | 回调外部系统的扩展参数 |
配置参数 | url | string | 回调外部系统的地址 |
配置参数 | retry | number | 回调重试次数 |
配置参数 | retryInterval | number | 回调重试间隔 |
只需要将该节点添加到工作流当中,配置回调的url,并与期望增加回调的工作流节点建立依赖关系。
提示
外部回调节点在一个工作流中无数量限制,如果希望有多处回调,可以增加多个。
示例¶
下面用一个实际的案例讲解如何使用自定义节点回调外部系统。
假如有一个工作流,其主要工作内容是将一个原始视频进行转码,同时生成高清和超清两路视频清晰度的视频流,因为每一路清晰度生产都是异步完成的,希望在每生成一路清晰度视频后回调通知外部系统。可以为系统添加两个回调节点,并分别关联到对应清晰度转码视频节点上,如下图所示:
两个回调节点分别配置各自的回调地址和参数,在各自的转码节点完成以后被执行,完成对外部系统的回调操作。