停止任务
1. 接口参数
Path:
/api/v1/task_stop/wf
method:
post
Request params:
| 参数名称 | 类型 | 必须 | 描述 |
|---|---|---|---|
api_name |
string | 是 | api的名称,在申请wfAPI时的名称,可填写任意值,但请注意,为保证是测试api,此参数内必须包含test,例如:wfapi_test。 |
api_id |
string | 是 | api的id,申请wf的测试环境的api下发的id,请注意!必须为测试环境的api!!! |
task_id |
string | 是 | 创建任务接口返回的UUID,为任务id |
2. 接口返回
成功:
{
"code": 200,
"message": "任务已下发停止标志,需等待当前不可中断阶段执行完成,请稍后携带task_id访问进度"
}
用户可自行调取停止任务接口,来主动停止任务。
3. 注意事项
3.1 可强行停止期限
任务创建后会被放入任务队列,等待celery消费者领取,在任务被消费者领取后,依旧有10min等待期,等待期与任务执行期中,可随时调用停止任务接口,强行对还未开始或已经开始的任务进行中断,但请注意,一旦任务开始执行,只有任务执行到下个节点,才会被停止,也就是说,任务可能不会立即停止,在任务执行函数中,每隔一些接口才会检查停止标志,一旦检测到停止标志,任务才会停止并执行保存日志并返回,但在等待期间,函数每10秒检查一次停止标志;
3.2 不可中断期
在celery消费者领取完任务后,依旧会有10min等待期,详见项目代码,在调取任务进度接口时,当任务状态从PENDING变为PROCESSING即表示,任务已被领取并在执行;在任务创建成功后的任意阶段,用户均可调取本接口,主动停止任务,但在任务等待期后,任务请求开始执行中,函数会"批次"执行,在批次执行中,任务不会检查中断标记,详见项目代码解析,在批次请求执行中,为不可中断期,请注意接口运行时间节点。