【已评审】资源协作接口方法调用上下文新增TaskAutoDeleteTimeoutMinutes字段

背景

  • 现状
    根据当前的Task任务结束留存时间管理机制,任务结束10分钟后,对应的资源树对象会自动销毁下树。
  • 差异
    在Redfish接口的使用过程中,用户在某些场景下需要查询已完成历史任务。若任务结束留存时间设置过短,会导致相关记录无法被查询,影响用户体验。当前Task机制不支持设置Task任务结束留存时间,无法满足客户希望指定任务结束留存时间的诉求。
  • 措施
    为提升用户对任务结束留存时间的自主控制能力,现支持对任务结束留存时间进行自定义设置,结合用户场景和对象任务结束留存时间合理性考虑,允许自定义任务结束留存时间范围为10~1440分钟(一天)。该功能通过上下文传递方式实现,需在上下文白名单中新增TaskAutoDeleteTimeoutMinutes 字段。

关联ISSUE

支持设置任务自动删除超时时间

整体方案

支持redfish接口通过上下文传递的方式来设置任务生命周期时长。任务结束后若获取到用户设置的任务结束留存时间TaskAutoDeleteTimeoutMinutes,则等待指定时间后销毁任务。若上下文中未指定TaskAutoDeleteTimeoutMinutes,则默认任务生命周期时间为10分钟。

评审点

上下文白名单中新增TaskAutoDeleteTimeoutMinutes字段

详细描述

参数名称 参数说明 参数取值 使用场景/功能
TaskAutoDeleteTimeoutMinutes 调用资源协作接口方法创建异步任务时,任务自动清理的超时时间,单位min 整数形式的字符串 需要通过异步任务执行的操作,如收集日志、升级固件等

评审结论

同意资源协作接口方法调用的上下文新增属性TaskAutoDeleteTimeoutMinutes,表示任务自动清理的超时时间,单位min,有效范围为[10,1440],取值为数字字符串。

遗留问题

问题:任务存留时间延长之后,框架需要保证任务创建有数量限制,避免资源无节制消耗
结论:框架目前已对组件侧创建任务的数量进行了限制,最大值为32。针对长时间存留的任务过多导致任务无法创建的情况需要梳理方案后再进行技术决策。

1、背景中需要说明,当前的现在、差异的具体情况,例如当前任务销毁的时间是多长,期望的时间范围是多少。

2、时序图对方案的描述有误,任务销毁的时间不是在结束时获取和判断,而是在任务创建时就指定好的;建议采用mermaid方式描述时序图。

3、新增的TaskLifeCycleMinutes参数,需要说明使用范围(方法调用、属性访问、信号广播之一,还是全部)、取值范围。功能要跟参数描述保持一致:指定任务生命周期,到期后清理和删除任务。

1、命名需要和北向定义保持一致TaskAutoDeleteTimeoutMinutes
2、允许设置的时间范围,结合任务完成后网管获取的最短间隔进行制定,建议框架的时间范围为10min-1天,北向进行更严格的约束
3、遗留问题:框架需要提供机制约束业务组件任务的创建数量