# 在平台下发了忙闲时配置后，需要在后台运行一个协程任务，该任务主要执行如下流程：
- 检测当前处于哪种时间状态：忙时还是闲时
- 当当前时间从忙时变成了闲时，或者从闲时变成了忙时，均需要刷新updater中的相关限速配置。只有状态变化才刷新相关限速配置

这个任务的生命周期如下：
- 生命周期不得长于prepare_dist_upgrade这个下载任务
- 这个任务的运行依赖于平台下发的限速配置中，开启了闲时或者忙时限速。
- 当下载job结束后，这个忙闲时切换监控流程也需要结束
- 如果远程全局、闲时和忙时均没有开启，则使用本地限速

术语规范：闲时-offPeak，忙时-peak

```
applyOnlineRateLimit() 
     ├── AllDayRateLimit.Enable == true → 使用全局限速
     └── else → getCurrentTimeState()
         ├── PeakTimeRateLimit.Enable && 时间在忙时范围 → 返回 timeStateBusy → 使用忙时限速            
         ├── OffPeakTimeRateLimit.Enable && 时间在闲时范围 → 返回 timeStateIdle → 使用闲时限速 
         └── 其他情况 → 返回 timeStateUnknown → getDownloadSpeedLimitConfigByTimeState() 的 default 分支 → 使用本地限速
```
