背景
- 现状
根据当前的Task任务结束留存时间管理机制,任务结束10分钟后,对应的资源树对象会自动销毁下树。 - 差异
在Redfish接口的使用过程中,用户在某些场景下需要查询已完成历史任务。若任务结束留存时间设置过短,会导致相关记录无法被查询,影响用户体验。当前Task机制不支持设置Task任务结束留存时间,无法满足客户希望指定任务结束留存时间的诉求。 - 措施
为提升用户对任务结束留存时间的自主控制能力,现支持对任务结束留存时间进行自定义设置,结合用户场景和对象任务结束留存时间合理性考虑,允许自定义任务结束留存时间范围为10~1440分钟(一天)。该功能通过上下文传递方式实现,需在上下文白名单中新增TaskAutoDeleteTimeoutMinutes字段。
关联ISSUE
整体方案
支持redfish接口通过上下文传递的方式来设置任务生命周期时长。任务结束后若获取到用户设置的任务结束留存时间TaskAutoDeleteTimeoutMinutes,则等待指定时间后销毁任务。若上下文中未指定TaskAutoDeleteTimeoutMinutes,则默认任务生命周期时间为10分钟。
评审点
上下文白名单中新增TaskAutoDeleteTimeoutMinutes字段
详细描述
| 参数名称 | 参数说明 | 参数取值 | 使用场景/功能 |
|---|---|---|---|
| TaskAutoDeleteTimeoutMinutes | 调用资源协作接口方法创建异步任务时,任务自动清理的超时时间,单位min | 整数形式的字符串 | 需要通过异步任务执行的操作,如收集日志、升级固件等 |
评审结论
同意资源协作接口方法调用的上下文新增属性TaskAutoDeleteTimeoutMinutes,表示任务自动清理的超时时间,单位min,有效范围为[10,1440],取值为数字字符串。
遗留问题
问题:任务存留时间延长之后,框架需要保证任务创建有数量限制,避免资源无节制消耗
结论:框架目前已对组件侧创建任务的数量进行了限制,最大值为32。针对长时间存留的任务过多导致任务无法创建的情况需要梳理方案后再进行技术决策。
