为什么要用定时任务?

很多运营工作是重复的:每天发日报、每周检查死链、每月清理过期数据、每隔几小时刷新缓存。这些事情不难,但每次都要人工触发就很烦。
OpenClaw 内置了定时任务系统(Cron),可以让 AI 按照你设定的时间自动执行工作。设置一次,之后就是全自动。
这篇教程从最简单的一次性提醒开始,一步步教你掌握 OpenClaw 的定时任务功能。
三种调度类型
OpenClaw 支持三种时间调度方式,覆盖不同场景:
at——一次性任务
到了指定时间执行一次,执行完自动删除。适合提醒、倒计时类任务。
# 20 分钟后提醒我检查文档
openclaw cron add \
--name "检查文档提醒" \
--at "20m" \
--session main \
--system-event "提醒:去检查一下文档发布情况" \
--delete-after-run
every——固定间隔
每隔固定时间执行一次,不关心具体几点。适合轮询、心跳类任务。
# 每 6 小时检查一次网站是否正常
openclaw cron add \
--name "网站健康检查" \
--every "6h" \
--session isolated \
--agent-turn "检查 361sale.com 是否正常访问,如果有异常立即告警"
cron——标准表达式
最灵活的方式,用 5 位 cron 表达式精确控制执行时间。适合”每天早上 9 点””每周一上午 10 点”这种精确需求。
# 每天早上 9 点生成日报
openclaw cron add \
--name "每日日报" \
--cron "0 9 * * *" \
--tz "Asia/Shanghai" \
--session isolated \
--agent-turn "生成昨天的运营数据摘要"
cron 表达式格式:分 时 日 月 周。常用示例:
0 9 * * *→ 每天 9:000 9 * * 1→ 每周一 9:000 */6 * * *→ 每 6 小时整点30 8 1 * *→ 每月 1 号 8:30
创建一次性提醒
最简单的用法——设置一个定时提醒:
openclaw cron add \
--name "会议提醒" \
--at "2026-05-20T14:00:00+08:00" \
--session main \
--system-event "提醒:14:00 有产品评审会议" \
--wake now \
--delete-after-run
パラメータの説明:
--at:具体时间点(ISO 8601 格式),不带时区按 UTC 算--session main:在主会话中执行(你会在当前对话里看到提醒)--system-event:提醒内容--wake now:立即唤醒会话处理这个事件--delete-after-run:执行完自动删除这个 job
也支持相对时间:--at "30m"(30 分钟后)、--at "2h"(2 小时后)。
创建每日重复任务
比如每天早上 9 点让 AI 检查网站收录情况:
openclaw cron add \
--name "每日收录检查" \
--cron "0 9 * * *" \
--tz "Europe/Berlin" \
--session isolated \
--agent-turn "检查 361sale.com 在 Google 的最新收录情况,列出昨天新收录的页面和未收录的页面。"
支出 --tz 指定时区很重要。如果你在柏林,用 Europe/Berlin;在上海,用 Asia/Shanghai。不设时区默认按服务器本地时区。
配置执行方式

OpenClaw 的 cron job 有四种执行方式:
- メイン:在你的主对话会话中执行。适合提醒类任务,你会直接在对话里看到结果。只能用 system-event 类型。
- isolated(推荐):在独立的临时会话中执行。不会干扰你的主对话,执行完会话自动清理。
- current:绑定到创建时的当前会话。适合需要上下文的重复任务。
- session:自定义ID:在一个持久化的命名会话中执行。适合需要积累历史的工作流。
大部分场景用 isolated 就够了。只有需要 AI 记住上次执行结果时,才用 session:xxx.
配置 Delivery 推送结果
执行完之后,你可能想把结果推送到某个地方:
openclaw cron add \
--name "周报生成" \
--cron "0 10 * * 1" \
--tz "Asia/Shanghai" \
--session isolated \
--agent-turn "生成上周的 SEO 周报,包括流量趋势、排名变化、新增收录。" \
--delivery announce \
--delivery-channel telegram \
--delivery-to "-100123456789"
delivery 支持三种模式:
- announce:推送到聊天渠道
- ウェブフック:POST 到指定 URL
- なし:不推送,只在任务记录里留痕
管理定时任务
创建完 job 后,日常管理用这几个命令:
# 列出所有 job
openclaw cron list
# 查看某个 job 详情
openclaw cron get <job-id>
# 查看执行历史
openclaw cron runs --id <job-id>
# 手动触发一次(测试用)
openclaw cron run <job-id>
# 暂停一个 job(不删除)
openclaw cron update <job-id> --enabled false
# 恢复
openclaw cron update <job-id> --enabled true
# 删除
openclaw cron remove <job-id>
建议每次创建新 job 后,先用 openclaw cron run 手动触发一次,确认执行正常再等自动调度。
用 JSON5 文件管理复杂任务
如果你的任务配置比较复杂,用命令行参数写起来太长,可以写成 JSON5 文件:
// daily-seo-check.json5
{
name: "每日 SEO 巡检",
schedule: {
kind: "cron",
expr: "0 8 * * *",
tz: "Europe/Berlin"
},
payload: {
kind: "agentTurn",
message: "执行每日 SEO 巡检:1) 检查网站是否正常访问;2) 检查昨天发布的文章是否被收录;3) 检查是否有 5xx 错误;4) 检查核心关键词排名变化。输出简洁报告。",
timeoutSeconds: 180
},
delivery: {
mode: "announce",
channel: "telegram",
to: "-100123456789"
},
sessionTarget: "isolated"
}
然后一行命令导入:
openclaw cron add --file daily-seo-check.json5
一般的な問題
Q1:cron 表达式写错了怎么办?
支出 openclaw cron update <job-id> --cron "新表达式" 修改。或者直接编辑 ~/.openclaw/cron/jobs.json 文件,Gateway 会自动检测变化。
Q2:Gateway 重启后定时任务会丢失吗?
不会。所有 job 持久化在 ~/.openclaw/cron/jobs.json,重启后自动恢复。运行状态在 jobs-state.json 里。
Q3:任务执行超时怎么办?
在 payload 里设置 timeoutSeconds。默认值可能不够复杂任务使用,建议设 120-300 秒。超时后任务会被标记为 timed_out。
Q4:怎么知道任务有没有正常执行?
支出 openclaw cron runs --id <job-id> 查看历史。每次执行都有状态记录:succeeded、failed、timed_out。也可以用 openclaw tasks audit 做整体健康检查。
Q5:能不能设置任务失败后自动告警?
可以。在 job 配置里加 failureAlert 字段,指定连续失败几次后告警、告警发到哪里。
Q6:isolated 会话执行完后数据还在吗?
执行记录保留 7 天,之后自动清理。如果你需要长期保留执行结果,用 delivery 推送到外部渠道,或者用 session:xxx 模式让 AI 在持久会话里积累历史。
相关教程推荐
- OpenClaw 怎么做内容排期?把关键词研究变成可执行的发布计划
- OpenClaw 怎么做数据分析日报?每天 5 分钟掌握网站运营状态
- OpenClaw 怎么做 SEO 关键词研究?从找词、分类到内容规划的实操教程
概要
OpenClaw 的定时任务功能让你把所有重复性工作自动化:一次性提醒用 at,固定间隔用 every,精确时间用 cron 表达式。配合 delivery 推送,执行结果自动发到你的群里。
核心就是:选对调度类型 → 写好 AI 指令 → 配好推送 → 测试一次确认正常。之后就是全自动。
更多定时任务高级用法,参考官方文档:OpenClaw Scheduled Tasks 文档.
官方文档:OpenClaw 定时任务配置文档
| お問い合わせ | |
|---|---|
| チュートリアルが読めない?無料でお答えします!個人サイト、中小企業サイトのための無料ヘルプ! |
カスタマーサービス WeChat
|
| ① 電話:020-2206-9892 | |
| ② QQ咨询:1025174874 | |
| 三 Eメール:[email protected] | |
| ④ 勤務時間: 月~金、9:30~18:30、祝日休み | |
この記事へのリンクhttps://www.361sale.com/ja/87568/この記事は著作権で保護されており、必ず帰属表示を付けて複製してください。













3月11日 13:490
今はまだ間違いなくSEOを行っているが、ただ遊び方が変わっただけだ。 以前はコンテンツの山に依存し、キーワードの山は、トラフィックを持つことができ、今ではコンテンツの質+ブランドの信頼+ユーザーエクスペリエンスにもっと注意を払う。 SEOだけに頼ることに加えて、実際にはますます困難であり、多くの良い基本的にSEO +ソーシャルメディア+コンテンツマーケティング+一緒に行うには、プライベートドメインの変換。 SEOは依然として長期的な顧客獲得チャネルであるが、もはや唯一のチャネルとして捉えることはできない。ヒヒは仕事中
3月11日 10:540
ノーマルは、Googleに代わってページを参照してくださいにのみ含まれ、すぐにランキングにそのことを意味するものではありませんが、"含まれているが、ランク付けされていない "通常のため: キーワードの競争は、ページの重量が低い、コンテンツが十分に強力ではない、ページが比較的新しいです。 ロングテールキーワード、コンテンツの品質と内部チェーンを最適化し続け、通常は少し時間がかかり、ランキングは徐々に出てくるだろう!アメリア・フォスター 3月6日 16:200
スクリーンショットはありますか?魚でない息子も魚の喜びを知っている。 3月6日 09:230
最初に最適化プラグインを積み上げるのではなく、最初にボトルネックを特定する: クエリモニタを使って、遅いSQL、遅いフックを確認する。 すべてのプラグインを一時停止して比較し、それから1つずつオンにする。 オートロードが大きすぎないかチェックする(オプションテーブル)。 大きなテーブルクエリでデータベースのインデックスをチェックする。 サーバーのTTFBが高い場合は、まずホスト/データベースのパフォーマンスに取り組んでください。ヒヒは仕事中
3月3日 16:470
ウィンドジャマーさん、複雑なローカル環境をいじくる必要はありません。普通の人はこの手順に従って更新すれば、基本的にサイトがクラッシュすることはありません👇。 まず、サイト全体のバックアップ、ファイル+データベースの準備、これが肝心です。 サイトのアップデートをする場合、ワンクリックで全部行わず、一括で行い、まず重要でないプラグインを変更し、次にコアなプラグインを変更する。 更新後すぐにキャッシュをクリアし、フォアグラウンドに移動してトップページ、記事ページ、ボタン、フォーム、これらの重要な位置をチェックする。 バージョンのロールバックをサポートするプラグインをインストールしておくと、クラッシュした場合、一瞬で古いバージョンに戻すことができる。 まとめると:まずバックアップ、一括変更、変更後チェック、戻る方法を残す、非常に安定している ✅😎 これが役立つことを願っています!バグバング 3月2日 09:550
通常、決済がうまくいかなかったのではなく、コールバック(ウェブフック)が注文状況を書き戻さなかったのです。 トラブルシューティングの手順 WooCommerce → Status → Logs: ペイメントゲートウェイにウェブフックエラー/シグネチャーエラー/タイムアウトがあるか確認してください。 サイトがWAF(Cloudflare、Pagoda Firewall、セキュリティプラグイン)によってブロックされていないか確認する。 Cache checkout pages/interface paths "が有効になっているか確認する(チェックアウトページとコールバックインターフェースはキャッシュされるべきではない) サーバーのエラーログを見て、コールバックの実行を中断させるような500/致命的なエラーがないか確認する。 解決方法 wp-json、wc-api、ペイメントゲートウェイのコールバックURLを解放する。 チェックアウトページのキャッシュとJSマージ圧縮テストを一度無効にする。 Cloudflareを使用している場合: コールバックURLのno-challenge、no-blockルールを設定する。ウラ・ナラ・ジェンファン(18嬛嬛) 1月31日 09:360
1) 「正常な待機」なのか「異常な停滞」なのかを判断する。 まず3つのシグナルを見ることができる:ページ公開時間が7-14日以内か、このステータスのページは少数か、XMLサイトマップにページが登場しているか。 この3つが満たされていれば、通常のクロールと評価の段階である可能性が高く、すぐに行う必要はない。 2)どのような場合に「待つ」ことが無駄になるのか? 内部リンクがほとんどないページ(孤立したページ)、サイト内の既存ページと内容が酷似している、カノニカルポイントが他のURLになっている、同じトピックで似たような記事が短期間に公開されすぎている、などの場合は、時間が経過しても自動的には解決されません。 この場合、Googleはクロールはしているが「インデックスに登録する価値はない」と判断している。 3)手動で介入する最も効果的な方法(手間をかけない) 内部リンクの追加、関連する古い記事やコラムからページへのリンク、最初の画面の情報密度を高める。 最初の2-3段落はユーザーの質問に直接答える、詰め込みすぎを避ける、重複ページと判定されないようにcanonicalを自己参照として確認する、そしてGSCに再インデックスを依頼しに行く。 4) 逆効果になる「介入行動」とは? 頻繁に削除や再投稿を繰り返す、「インデックスリクエスト」を何度も連続でクリックする、インデックスされるためにキーワードを無理やり重ねる、URLやタイトルを恣意的に変更する、など。 これらの操作は、Googleにページの安定性を再評価させるが、インクルードが遅くなる。 5) 現実的な判断基準 記事:クロールされている、noindex/robotsの問題がない、少なくとも1-2個の関連する内部リンクがある、コンテンツが明らかに独立した問題を解決している、プラグインの問題ではなく時間の問題である。ポスト・ポーター 1月30日 10:000
新しい駅は完全に外部リンクを行うことはできませんが、最初のコンテンツと駅の構造は、より安定した良い仕事をする。コンテンツにのみ依存して、一般的にロングテールの単語のランキングの一部が含まれて得ることができますが、高い競争の量が遅くなります。それは、サイトが安定してインクルード、30〜50品質のコンテンツを待つことをお勧めします、キーワードはトップ20/30を入力するようになったし、外部リンクの少量は、優先順位のブランド語/裸チェーン/引用型は、番号を追いかけて出てこない。👍