上个月我给客户配置了一套自动化流程,每天早上8点自动发日报到微信群。结果前三天都好好的,第四天突然没动静了。我盯着配置文件看了半天,愣是没发现问题在哪。
后来折腾了一整天,才发现定时任务这玩意儿坑真不少。今天把踩过的三个坑分享出来,希望能帮到同样在搞自动化的朋友。
第一步:检查cron表达式格式
操作方法:
打开QClaw的定时任务配置,看cron表达式。我当时的配置是:
0 8 * * *
看起来没问题对吧?每天8点执行。但QClaw用的cron格式和Linux略有不同,时区设置必须明确指定。
踩坑经验:
我一开始没设时区,系统默认用UTC时间。我在上海(GMT+8),所以8点任务实际在下午4点才执行——难怪早上没动静!
正确配置:
{
"schedule": {
"kind": "cron",
"expr": "0 8 * * *",
"tz": "Asia/Shanghai"
}
}
第二步:确认任务类型和sessionTarget
操作方法:
QClaw的定时任务有两种类型:systemEvent和agentTurn。我一开始随便选的,结果任务根本没按预期执行。
踩坑经验:
– systemEvent类型:会往主会话发消息,适合需要人工确认的任务
– agentTurn类型:在独立会话里执行,适合全自动任务
我的日报任务应该用agentTurn,但配置成了systemEvent,导致任务在等待主会话响应——而主会话根本没人在线。
正确配置:
{
"payload": {
"kind": "agentTurn",
"message": "生成并发送今日日报"
},
"sessionTarget": "isolated"
}
第三步:验证任务是否真正启用
操作方法:
配置完了不代表任务就启动了。用命令查看所有任务状态:
openclaw cron list
踩坑经验:
我改完配置以为任务自动生效了,结果发现enabled: false。原来我之前调试时把任务禁用了,改完配置忘记重新启用。
更坑的是,任务创建后默认是启用的,但更新配置时不会自动改变启用状态。所以一定要检查:
openclaw cron update <jobId> --enabled true
这三个坑我踩了一个月才全部搞明白。现在定时任务稳定运行快两个月了,每天早上8点准时发日报,再没出过问题。
QClaw的定时任务功能确实强大,但配置细节挺多。希望这篇能帮你少走点弯路。
如果你也在用QClaw做自动化,欢迎关注我的博客,后面还会分享更多实战经验。
相关资源:
- 腾讯云服务器推荐 – 搭建自动化系统的好选择

