在OpenClaw中设置定时任务(Cron Jobs)主要通过AppFlow功能实现,允许您定期自动执行指令或工作流。以下是具体设置方法:
核心设置步骤
1. 启用AppFlow
确保OpenClaw配置中启用了AppFlow模块。检查~/.openclaw/openclaw.json配置文件:
{"appflow": {"enabled": true,"cron": {"enabled": true,"timezone": "Asia/Shanghai" // 设置时区}}}
2. 创建定时任务配置
在OpenClaw工作目录中创建或编辑定时任务文件,通常位于~/.openclaw/appflow/cron.json或通过命令行添加。
方法一:通过配置文件
创建cron.json文件:
{"jobs": [{"name": "每日备份","schedule": "0 2 * * *", // Cron表达式:每天凌晨2点"command": "backup --all","channel": "main" // 执行频道},{"name": "每小时检查邮件","schedule": "0 * * * *","command": "email check --unread","channel": "email-bot"}]}
方法二:通过命令行添加
# 添加定时任务openclaw appflow cron add --name "测试任务" --schedule "*/15 * * * *" --command "echo '定时执行'"# 列出所有定时任务openclaw appflow cron list# 删除定时任务openclaw appflow cron remove --name "测试任务"
3. Cron表达式格式
OpenClaw使用标准Cron表达式,格式为:
* * * * *┬ ┬ ┬ ┬ ┬│ │ │ │ ││ │ │ │ └── 星期几 (0-7,0和7都代表周日)│ │ │ └───── 月份 (1-12)│ │ └────────── 日期 (1-31)│ └─────────────── 小时 (0-23)└──────────────────── 分钟 (0-59)
常用示例:
0 * * * *:每小时整点执行0 0 * * *:每天午夜执行*/10 * * * *:每10分钟执行0 9 * * 1:每周一上午9点执行
4. 任务执行内容
command字段支持任何OpenClaw能执行的指令,包括:
- 内置工具:
email check、calendar list - 自定义技能:调用已安装的技能
- Shell命令:通过
exec工具运行系统命令 - 复杂工作流:组合多个指令的脚本
示例:自动清理临时文件
{"name": "清理临时文件","schedule": "0 3 * * *","command": "exec find /tmp -name '*.tmp' -mtime +7 -delete","channel": "main"}
高级配置
环境变量支持
可以在任务中指定环境变量:
{"name": "数据库备份","schedule": "0 1 * * *","command": "backup --database","env": {"DB_HOST": "localhost","DB_NAME": "mydb"}}
错误处理与重试
{"name": "重要任务","schedule": "0 */6 * * *","command": "sync-data","retry": {"attempts": 3,"delay": "5m"},"on_failure": "notify-admin --message '任务失败'"}
条件执行
通过conditions字段控制任务是否执行:
{"name": "仅工作日执行","schedule": "0 10 * * *","command": "generate-report","conditions": ["weekday 1-5" // 周一至周五]}
管理监控
查看任务状态
# 查看所有定时任务及其状态openclaw appflow cron status# 查看任务执行日志openclaw logs --filter cron# 手动触发任务执行(不等待定时)openclaw appflow cron run --name "任务名称"
禁用/启用任务
# 临时禁用任务openclaw appflow cron disable --name "任务名称"# 重新启用openclaw appflow cron enable --name "任务名称"
注意事项
-
时区设置:确保Cron时区与系统时区一致,避免时间偏差。默认使用UTC,建议在配置中指定
timezone。 -
权限要求:定时任务以OpenClaw进程权限运行,确保有执行命令所需的权限。对于敏感操作,考虑在沙盒模式下运行。
-
资源占用:频繁任务(如每分钟执行)可能增加系统负载,合理规划执行频率。
-
网络依赖:如果任务需要网络访问,确保OpenClaw配置允许外部连接,或使用
network: "bridge"的沙盒设置。 -
错误处理:建议为关键任务配置失败通知,如通过邮件或聊天工具报警。
-
版本兼容:定时任务功能在OpenClaw 2025.1.0+版本中完整支持,旧版本可能需要升级。
如果遇到配置问题,可查看OpenClaw日志获取详细错误信息:
tail -f ~/.openclaw/logs/openclaw.log
对于复杂工作流,建议先通过手动测试命令确保功能正常,再添加到定时任务。更多高级用法请参考OpenClaw官方文档的AppFlow部分。