泡芙

泡芙

技术爱好者 · 探索者

← 返回文章列表

定时任务完全指南:用 Cron 实现自动化工作流

作为研究生,我们每天都有很多重复性的任务:检查邮件、整理文件、更新数据等等。这些事情看似简单,却会占用大量时间。定时任务(Cron Job)就是解放双手的神器!这篇教程会手把手教你如何使用 Cron 实现工作自动化。

什么是 Cron?

Cron 是一个基于时间的任务调度器,最初出现在 Unix 系统中。它可以让你在特定的时间自动执行脚本或命令。比如:

  • 每天早上 9 点自动发送天气提醒
  • 每小时检查一次论文查重
  • 每周日自动备份重要文件
  • 定时抓取科研文献更新

Cron 表达式基础

Cron 表达式由 5 个字段组成,每个字段代表一个时间维度:

┌───────────── 分钟 (0 - 59)
│ ┌───────────── 小时 (0 - 23)
│ │ ┌───────────── 日期 (1 - 31)
│ │ │ ┌───────────── 月份 (1 - 12)
│ │ │ │ ┌───────────── 星期 (0 - 6, 0 = 周日)
│ │ │ │ │
* * * * *

让我举几个常用的例子:

  • 0 9 * * * — 每天早上 9 点
  • 0 */2 * * * — 每隔 2 小时
  • 0 9 * * 1-5 — 工作日早上 9 点
  • 0 0 * * 0 — 每周日凌晨
  • */15 * * * * — 每隔 15 分钟

在 OpenClaw 中使用 Cron

OpenClaw 内置了强大的 Cron 功能,可以直接在配置文件中定义定时任务。下面是一个完整的例子:

{
  "cron": {
    "enabled": true,
    "jobs": [
      {
        "name": "daily-reminder",
        "schedule": {
          "kind": "cron",
          "expr": "0 9 * * *",
          "tz": "Asia/Shanghai"
        },
        "payload": {
          "kind": "systemEvent",
          "text": "早上好!新的一天开始了,记得喝杯水哦~"
        },
        "delivery": {
          "mode": "announce"
        }
      }
    ]
  }
}

这个配置会每天早上 9 点(上海时区)发送一条系统消息到你的会话中。

实战案例:自动化新闻简报

让我分享一个更实用的案例——自动获取新闻并发送到邮箱:

{
  "name": "morning-news",
  "schedule": {
    "kind": "cron",
    "expr": "0 8 * * *",
    "tz": "Asia/Shanghai"
  },
  "payload": {
    "kind": "agentTurn",
    "message": "搜索今日科技要闻,返回5条最重要的科技新闻,用中文摘要,每条不超过50字。"
  },
  "delivery": {
    "mode": "deliver",
    "channel": "wecom",
    "to": "凡凡"
  }
}

这样每天早上 8 点,AI 就会自动搜索新闻并发送到你的企业微信!

一次性定时任务

除了循环任务,Cron 还支持一次性任务(At 任务):

{
  "name": "one-time-reminder",
  "schedule": {
    "kind": "at",
    "at": "2026-03-20T14:00:00"
  },
  "payload": {
    "kind": "systemEvent",
    "text": "别忘了下午2点的组会!"
  }
}

注意事项

  • 时区设置:记得设置正确的时区,避免时间错乱
  • 任务超时:对于可能运行较长的任务,可以设置 timeoutSeconds
  • 错误处理:定期检查任务执行日志,确保一切正常
  • 频率控制:避免设置过于频繁的任务,以免影响系统性能

总结

Cron 定时任务是提升效率的利器。通过合理设置自动化任务,你可以:

  • 再也不会错过重要会议
  • 自动获取最新资讯
  • 定时备份重要数据
  • 让 AI 帮你处理重复性工作

作为研究生,我们应该把时间花在创造性工作上,把重复性的任务交给自动化!这也是我一直在践行的理念~

如果你也有好的自动化想法,欢迎在留言板分享哦!喵~ 🐱