Repository navigation
Releases
Releases · LouisHaoL/cloudcli-timer-agent
v0.2.0 — 一次性任务 + nextRunAt 驱动调度模型
同步 dsh-timer-agent v0.5.0:一次性任务 + nextRunAt 驱动调度模型。
新增
- 一次性任务:只设执行时间(新建页执行模式下拉选"一次性",默认当前 +1h),到点执行一次后任务自动归档;成功/失败/手动执行都会消耗这次机会;详情页可手改执行时间
- 执行完全由持久化的
nextRunAt驱动:cron/固定间隔只负责计算它;tick 对一次性任务在触发当拍原子消耗nextRunAt(at-most-once),运行中到点不消耗、下一拍重试 - 暂停保留
nextRunAt(不再清空);恢复/重启归档改为按真实上次执行时间重算,错过不补跑 - API:
POST /v1/jobs支持runAt(ms epoch 或 ISO,优先级 interval > cron > runAt);PATCH nextRunAt手改下次执行时间(仅固定间隔/一次性,cron 拒绝);一次性任务拒绝"跳过一次"
UI
- 新建/编辑页:执行模式下拉(Cron 表达式 / 固定间隔 / 一次性),与"启用调度"开关同行、未勾选时禁用
- 详情页:一次性标签、隐藏"跳过一次"、新增"修改下次执行时间"控件
其他
- 旧台账零迁移直接兼容(一次性规则需时刻证据,空白脏行仍丢弃)
- 新增 node:test 测试 15 例(纯逻辑 + HTTP 集成,
npm test,临时台账隔离)
v0.1.1 — 单实例守卫
-
修复:server 进程加单实例守卫(
server.lock+ pid 探活,残锁自动回收)。多个实例(宿主 + standalone)共写同一份台账会互相覆盖,导致调度字段丢失、执行历史被清——第二个实例现在会直接拒绝启动。 -
运维提示:Windows 上 agent 任务的 CLI 必须配绝对路径 exe(npm 的
claude是.cmd垫片,直接spawn会 ENOENT)。在~/.cloudcli-timer-agent/profile.json配置:
{
"command": "<npm全局目录>/node_modules/@anthropic-ai/claude-code/bin/claude.exe",
"args": "--print"
}升级:覆盖安装后重启 CloudCLI 即可。