一个日程安排会按固定周期自动运行任务,无需人工触发。你可在工厂的“日程安排”视图中查看它们。
日程安排的适用场景
易于约定且容易被遗忘的周期性维护工作:
- 依赖项更新
- 日积月累的垃圾清理工作——无用代码、过时的标识、未使用的导出项
- 周期性报告生成
- 针对已采纳标准的定期校验
这类工作的共同点是事先已明确定义好执行内容。日程安排无法决定哪些工作值得做;它只是重复执行你预先写好的指令。
日程安排的不适用场景
需要判断优先级的工作。如果每周一都固定开启任务,无论当时是否有其他紧急工作,都会与你的计划内任务争夺相同的代理资源。
定时任务会占用实际算力
创建多个日程安排前,这一点务必牢记。
定时任务属于普通任务。它会进入队列、占用代理槽位,还会产生模型调用费用。若单槽位计划下设置了三个每日日程安排,可能会挤占你原本打算开展的所有工作。
运行历史记录
每个日程安排都会留存其运行记录及产出结果。偶尔查看一下——自动化的故障表现并非剧烈崩溃,而是默默无闻地数月产出无用结果,同时消耗预算。
若一个日程安排已生成十二条拉取请求,但你一条都没合并,说明该日程安排的设置有误。
日程安排、Sentinel与钩子机制
无需人工干预即可启动任务的三种方式:
| 机制 | 触发条件 |
|---|---|
| 日程安排 | 时间 |
| Sentinel | 所观测到的条件 |
| 钩子 | 平台事件 |
若触发条件确实是时间,则使用日程安排。如果你想表达的是“当某个条件满足时”,那应使用Sentinel,这样能减少无意义的工作量。