mcpField
R
render-cron-jobs

render-cron-jobs

github.com/render-oss云与 DevOps90442 次安装今天更新
代码仓库

关于 render-cron-jobs

为在 Render 上配置定时任务的开发者提供 Cron Job 行为、配置和限制说明,帮助区分定时任务、后台 Worker 与 Workflow,并指导 Blueprint 配置。

主要功能

  1. 01配置 UTC Cron 表达式
  2. 02说明 Blueprint 定时任务字段
  3. 03比较 Cron、Worker 与 Workflow
  4. 04梳理运行时长与网络限制

适用场景

  1. 01按计划清理数据库或生成报告
  2. 02定时同步外部 API 数据
  3. 03选择适合长时间或并行任务的服务类型

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/render-oss/skills --skill render-cron-jobs

安装后在 Claude Code 中输入/render-cron-jobs确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
cron-patterns.md
migration-from-scheduler.md
private-networking.md
service-types.md

详细介绍

Render Cron 作业

本技能介绍 Render 上的 Cron 作业 服务:计划任务如何运行、平台提供哪些保证,以及它们与 Worker 和工作流有何不同。编写 render.yaml 或配置 Dashboard 时,请结合 Blueprint 和部署技能使用。

适用场景

  • 执行计划任务:按 cron 启动、运行命令,并在完成后退出
  • 为周期性或长时间运行的作业选择 cron、后台 Worker 或工作流
  • 配置 type: cron、schedule 和命令的 Blueprint 字段
  • 了解限制:无磁盘、同一时间仅运行一个实例、最长运行 12 小时、仅允许通过私有网络进行出站连接
  • 避免 UTC 计划任务常见问题(表达式使用的不是本地时间)

表达式速查表、框架 startCommand 示例以及 Heroku Scheduler 迁移映射见 references/。

在配置或排查 Cron 作业的私有网络出站连接之前,请先阅读 references/private-networking.md。 在选择 Cron 作业、Worker 和 Workflow 时,请阅读 references/service-types.md。

配置

  • 计划:使用按 UTC 计算的 cron 表达式,而不是团队的本地时区。Dashboard 和 Blueprint 中的所有时间均为 UTC。
  • 命令:任何有效的 Linux shell 命令或 bash 脚本路径。工作完成后,进程必须退出,因为运行时间越长,计费计算资源消耗越多。请在 Render 定价页面确认当前详情。
  • 来源:
    • Git 仓库 — Render 会在推送时构建(部署模式与其他基于仓库的服务相同);每次按计划运行时都会执行构建产物。
    • 预构建 Docker 镜像 — 每次运行前都会拉取镜像,且不会在运行之间保留(与长期运行的服务不同,同一组镜像层不会在多次调用之间保持预热缓存)。

限制

  • 无持久磁盘 — Cron 作业服务不能配置或挂载 Render 持久磁盘;请改用对象存储或数据库。
  • 单实例运行保证 — 每个 Cron 服务同一时间最多有一个活动实例。新的计划触发不会启动第二个重叠实例。
  • 最长运行时间:每次调用最多 12 小时。
  • 定价:运行 Cron 作业会产生额外费用。请在 Render 定价页面确认当前详情。
  • 私有网络:Cron 作业可以向私有网络上的其他服务发送流量;但无法接收私有网络入站连接(没有可供其他服务连接的内部主机名)。

执行行为

  • 运行处于活动状态时手动选择“Trigger Run”:Render 会取消当前活动运行,然后启动新运行。
  • 新的 Git 构建或部署不会影响已在进行中的运行——正在运行的进程会继续使用其启动时的版本,直到退出。
  • 基于 Docker 的 Cron 作业:每次运行都会重新拉取镜像;不要假设不同调用之间会像持续运行的容器那样复用镜像层或镜像。
  • 所有时间均为 UTC:文档中的 cron 表达式和“午夜”均指 UTC。常见错误是将本地时间计划直接复制到表达式中,而不先转换为 UTC。

Cron、Worker 和 Workflow 的区别

需求使用原因
少于 12 小时的周期性任务Cron 作业按计划运行,简单,完成后退出
持续处理作业后台 Worker始终运行,并轮询队列
超过 12 小时的周期性任务后台 Worker不受 Cron 作业 12 小时运行时限的限制
计划执行的并行计算Cron 作业 + WorkflowCron 按计划触发工作流运行;工作流会拆分任务,或编排并行步骤

Blueprint 配置

Cron 服务使用 type: cron,并配置 schedule 以及常规的构建/启动和环境变量接线:

services:
  - type: cron
    name: nightly-cleanup
    schedule: "0 * * * *" # hourly at minute 0 — must be quoted in YAML
    buildCommand: pip install -r requirements.txt
    startCommand: python cleanup.py
    envVars:
      - key: DATABASE_URL
        fromDatabase:
          name: my-db
          property: connectionString
  • schedule:标准的五字段 cron 表达式(minute hour day-of-month month day-of-week),时区为 UTC。
  • buildCommand / startCommand:与其他非 Docker 服务的用途相同;使用 Docker 镜像的服务则按镜像型 cron 的配置,使用镜像和启动命令。
  • envVars:与 Web 服务和 worker 的模式相同(密钥、关联数据库等)。

YAML 注意事项:必须为 schedule 值加引号,以免 * 等字符被解析为 YAML 别名或流语法。

常见模式

  • 数据库清理 — 按计划归档或删除过期行
  • 报告生成 — 生成 CSV/PDF 并上传到对象存储或通过电子邮件发送
  • 外部 API 同步 — 按间隔批量拉取或推送数据
  • 缓存预热 — 在流量高峰前访问端点或重建缓存
  • 定时邮件 — 通过 cron + 邮件/API 发送摘要或提醒

参考资料

主题文件
私有网络范围、内部地址和故障排查references/private-networking.md
服务类型选择和执行模型references/service-types.md
表达式示例、框架命令、错误、环境变量references/cron-patterns.md
Heroku Scheduler → Render 映射、Blueprint 示例references/migration-from-scheduler.md

相关技能

  • render-deploy — 首次部署、创建服务、Dashboard 流程
  • render-blueprints — 完整的 render.yaml schema、预览和常见错误
  • render-background-workers — 长时间运行的进程、队列,不受 12h 上限限制
  • render-workflows — 编排式和并行任务,通常由 cron 按计划触发

当前文档检索

每当此技能要求查阅当前 Render 文档时:

  1. 使用可用的 URL 获取工具或 HTTP 客户端(例如 curl)直接获取链接的 Markdown 文档。不要用网页搜索摘要代替文档。
  2. 确认获取成功且返回了预期文档,然后阅读其内容。仅保存文件或打印文件路径并不足够。
  3. 如果请求失败,或工具无法读取 Markdown 响应,则打开并阅读链接的 HTML 版本。
  4. 如果两个版本都无法获取,请说明当前参考资料不可用,并遵循技能中针对该主题的备用方案。仅对稳定约束使用随附的指南,不要猜测可能变化的平台细节。

当任务需要多个参考资料时,对每个参考资料应用此流程,并区分已验证的文档与仍不可用的文档。

评论

支持 Markdown