为什么要用定时任务?

很多运营工作是重复的:每天发日报、每周检查死链、每月清理过期数据、每隔几小时刷新缓存。这些事情不难,但每次都要人工触发就很烦。
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
Explication du paramètre :
--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 的最新收录情况,列出昨天新收录的页面和未收录的页面。"
dépense ou frais --tz 指定时区很重要。如果你在柏林,用 Europe/Berlin;在上海,用 Asia/Shanghai。不设时区默认按服务器本地时区。
配置执行方式

OpenClaw 的 cron job 有四种执行方式:
- principal:在你的主对话会话中执行。适合提醒类任务,你会直接在对话里看到结果。只能用 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:推送到聊天渠道
- webhook:POST 到指定 URL
- aucun:不推送,只在任务记录里留痕
管理定时任务
创建完 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
problèmes courants
Q1:cron 表达式写错了怎么办?
dépense ou frais 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:怎么知道任务有没有正常执行?
dépense ou frais 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 关键词研究?从找词、分类到内容规划的实操教程
résumés
OpenClaw 的定时任务功能让你把所有重复性工作自动化:一次性提醒用 at,固定间隔用 every,精确时间用 cron 表达式。配合 delivery 推送,执行结果自动发到你的群里。
核心就是:选对调度类型 → 写好 AI 指令 → 配好推送 → 测试一次确认正常。之后就是全自动。
更多定时任务高级用法,参考官方文档:OpenClaw Scheduled Tasks 文档.
官方文档:OpenClaw 定时任务配置文档
Lien vers cet article :https://www.361sale.com/fr/87568/L'article est protégé par le droit d'auteur et doit être reproduit avec mention.













11 mars 13:490
Aujourd'hui, le référencement est toujours d'actualité, mais le jeu a changé. Auparavant, on s'appuyait sur des tas de contenus, des tas de mots-clés pour obtenir du trafic, et maintenant on accorde plus d'attention à la qualité du contenu + à la confiance dans la marque + à l'expérience de l'utilisateur. En plus de s'appuyer uniquement sur le SEO est en fait de plus en plus difficile, beaucoup de bonnes SEO + médias sociaux + marketing de contenu + conversion de domaine privé à faire ensemble. Le référencement reste un canal d'acquisition de clients à long terme, mais il ne peut plus être considéré comme le seul canal.Il travaille dur.
11 mars 10:540
Normal, inclus seulement au nom de Google pour voir la page, ne signifie pas qu'immédiatement au classement, "a été inclus mais n'a pas été classé" habituellement parce que : la concurrence des mots-clés, le poids de la page est faible, le contenu n'est pas assez fort, la page est relativement nouvelle. Continuez à optimiser les mots-clés à longue traîne, la qualité du contenu et la chaîne interne, il faut généralement un peu de temps pour que le classement s'améliore lentement !Amelia Foster 6 mars 16:200
Avez-vous une capture d'écran ?lit. même un fils qui n'est pas un poisson connaît la joie du poisson 6 mars 09:230
Ne commencez pas par utiliser les plugins d'optimisation, mais localisez d'abord les goulets d'étranglement : Utilisez Query Monitor pour voir les SQL lents, les crochets lents. Mettez tous les plugins en pause pour les comparer, puis activez-les un par un. Vérifier que l'autoload est trop grand (tableau des options). Vérifier les index de la base de données avec les requêtes de tables volumineuses. S'attaquer d'abord aux performances de l'hôte et de la base de données si le TTFB du serveur est élevé.Il travaille dur.
3 mars 16:470
Bonjour Windjammer, il n'y a vraiment pas besoin de s'embêter avec des environnements locaux compliqués, les gens ordinaires suivent ces étapes et la mise à jour ne fera pas planter le site 👇. Tout d'abord, sauvegarder l'ensemble du site, fichiers + base de données sont préparés, c'est la ligne de fond, hors du problème peut être une clé pour revenir en arrière. Si vous voulez mettre à jour votre site, ne le faites pas en un seul clic, mais faites-le par lots, changez d'abord les plugins sans importance, puis les principaux. Immédiatement après la mise à jour, videz le cache, passez au premier plan pour vérifier la page d'accueil, la page d'article, les boutons, les formulaires, ces positions clés. Il est préférable d'installer un plug-in qui prend en charge le retour à la version précédente ; en cas de panne, il est possible de revenir à l'ancienne version en une seconde. En résumé : sauvegarder d'abord, changer par lots, vérifier après avoir changé, laisser un moyen de revenir en arrière, très stable ✅😎 J'espère que cela vous aidera !bugbang 2 mars 09:550
En général, ce n'est pas le paiement qui n'a pas fonctionné, mais le rappel (webhook) qui n'a pas renvoyé l'état de la commande. Étapes de dépannage : WooCommerce → Statut → Logs : voir si la passerelle de paiement a une erreur de webhook / une erreur de signature / un dépassement de délai. Vérifiez si le site est bloqué par un WAF (Cloudflare, Pagoda Firewall, plugins de sécurité). Vérifiez si l'option "Cache checkout pages/interface paths" est activée (les pages de paiement et les interfaces de rappel ne doivent pas être mises en cache). Recherchez dans les journaux d'erreurs du serveur les erreurs 500/fatal qui interrompent l'exécution du callback. Solution : Libérer les URLs de rappel de wp-json, wc-api et de la passerelle de paiement (configurer selon la documentation de la passerelle). Désactiver le cache et le test de compression JS merge sur la page de paiement une fois. Si vous utilisez Cloudflare : définissez les règles "no-challenge" et "no-block" pour les URL de rappel.Ulla Nala Zhenhuan (18嬛嬛嬛) 31 janvier 09:360
1) Déterminer s'il s'agit d'une "attente normale" ou d'un "blocage anormal". Vous pouvez d'abord examiner trois signaux : si le délai de publication de la page est compris entre 7 et 14 jours, s'il n'y a qu'un petit nombre de pages avec ce statut et si la page est apparue dans le plan du site XML. Si ces trois éléments sont réunis, il s'agit très probablement d'une étape normale d'exploration et d'évaluation, et il n'est pas nécessaire d'intervenir immédiatement. 2) Dans quelles circonstances "attendre" est-il inutile ? Les cas suivants ne seront pas résolus automatiquement par le temps : la page n'a presque pas de liens internes (page isolée), le contenu est très similaire aux pages existantes sur le site, les points canoniques renvoient à d'autres URL, et trop d'articles similaires sont publiés sur le même sujet pendant une courte période. Dans ce cas, Google a été parcouru, mais a jugé que "cela ne vaut pas la peine d'entrer dans l'index". 3) La façon la plus efficace d'intervenir manuellement (sans chichis) La priorité est de faire ces 3 choses : ajouter des liens internes, créer un lien vers la page à partir d'anciens articles ou rubriques connexes, améliorer la densité de l'information sur le premier écran. Les 2-3 premiers paragraphes répondent directement à la question de l'utilisateur, évitent trop de remplissage, confirment que la page canonique est autoréférentielle pour éviter d'être jugée comme une page dupliquée, puis vont au SGC pour demander la réindexation. 4) Quelles sont les "actions d'intervention" contre-productives ? Déconseillées : supprimer et reposter fréquemment, cliquer plusieurs fois de suite sur "demander l'indexation", forcer l'empilement de mots-clés pour être indexé, changer arbitrairement d'URL ou de titre. Ces opérations permettront à Google de réévaluer la stabilité de la page, mais ralentiront l'inclusion. 5) Une norme de jugement pratique Si un article : a été crawlé, il n'y a pas de problème de noindex / robots, il y a au moins 1-2 liens internes connexes, le contenu résout manifestement un problème indépendant, il est inclus, ce n'est qu'une question de temps, ce n'est pas un problème de plug-in.Porteur de poste 30 janvier 10:000
La nouvelle station ne fait pas de liens externes peut être complètement, le premier contenu et la structure de la station pour faire un bon travail plus stable. En s'appuyant uniquement sur le contenu, il est généralement possible d'inclure une partie des mots-clés à longue traîne dans le classement, mais la quantité de concurrence élevée sera lente. Il est recommandé d'attendre l'inclusion stable du site, 30-50 contenu de qualité, les mots clés ont commencé à entrer dans le top 20/30, et puis une petite quantité de liens externes, les mots de marque prioritaires / chaîne nue / type de citation, ne viennent pas à chasser le nombre. 👍