用途
Loop 是一个用来设置周期性监控任务的技能。当用户输入“/loop <interval> <prompt>”时,它会把用户描述的监控需求安排成定时任务,并按用户选择的方式发送通知,适合需要定期检查状态、周期性执行命令并保存结果的场景。
主要能力
- 解析间隔参数:支持分钟、小时、天三种粒度,并转换为对应的 cron 表达式。
- Nm(N ≤ 59)→
*/N * * * * - Nh(N ≤ 23)→
0 */N * * * - Nd →
0 0 */N * *
- Nm(N ≤ 59)→
- 对于不能整除的间隔,将其调整为最接近的整齐值,并告知用户。
- 在创建任务前,先澄清三项信息:监控什么(解析 prompt)、如何执行(使用哪个 x-cmd 模块或命令)、结果存放在哪里。
- 通知方式在创建前询问:内存(默认,保存结果供后续查看)、邮箱(有新结果时通知),或用户指定的其他方式。
- 通过
x cron add创建 cron 任务,任务名带时间戳,例如loop-$(date +%Y%m%d%H%M%S)。 - 创建后立即执行一次命令,不等待首次定时触发。
- 完成后向用户报告任务名与 cron 表达式、可读的执行频率、监控目标和结果存储位置。
- 取消任务使用
x cron rm <name>。
使用方式
触发格式:
/loop <interval> <prompt>
创建任务的核心命令形如:
x cron add \
--name "loop-$(date +%Y%m%d%H%M%S)" \
--desc "<description>" \
"<cron-expression>" \
"<full-command>"
取消任务:
x cron rm <name>
适用场景
需要按固定间隔重复检查某项状态、周期性执行某条 x-cmd 命令、并在产生新结果时收到通知的监控类场景。
限制与约束
- 创建前必须询问结果存储方式。
- 创建后必须立即执行一次。
- 对于不规整的间隔需要取整,并向用户说明。
- 间隔的粒度仅涵盖分钟、小时、天,且分钟数不超过 59、小时数不超过 23。
- 具体可用的 x-cmd 模块、通知渠道的配置方式,资料中暂未提供。