render-cron-jobs — скилл для Claude Code: что делает и как установить
Настраивает и чинит периодические задачи в Render. Помогает составить расписание в UTC и описать сервис type: cron в render.yaml.
npx skills add render-oss/skills --skill render-cron-jobs -a claude-codeЧто делает render-cron-jobs
Скилл обучает агента создавать и диагностировать сервисы Cron Job на платформе Render. Он объясняет различия между cron, постоянным воркером и воркфлоу, а также подсказывает точный синтаксис для файла render.yaml. Все cron-выражения вычисляются строго в UTC.
У таких задач действуют жёсткие ограничения платформы. Cron Job не поддерживает постоянные диски, поэтому данные придётся сохранять в базу данных или объектное хранилище. Лимит выполнения одной задачи составляет 12 часов. Платформа гарантирует строго один активный запуск: если предыдущая итерация ещё работает, новая не стартует. Ручной перезапуск принудительно отменяет текущий активный процесс.
Образы Docker для cron-задач скачиваются заново перед каждым запуском без сохранения кеша слоёв. Для приватной сети доступен только исходящий трафик: принимать входящие сетевые запросы сервис не умеет.
Какие задачи решает
- настроить сервис
type: cronв файлеrender.yaml - перевести расписание из локального часового пояса в формат UTC
- мигрировать периодические скрипты с Heroku Scheduler на Render
- выбрать между cron, постоянным воркером и Workflow
Примеры запросов агенту
- Сконфигурируй в
render.yamlзапуск скрипта очистки базы каждый день в полночь по UTC - Помоги перенести фоновые задачи из Heroku Scheduler на Render
- Почему крон в Render не запускает параллельный процесс, если прошлый ещё работает?
Как установить render-cron-jobs
1Через Skills CLI (Vercel)
npx skills add render-oss/skills --skill render-cron-jobs -a claude-code2Вручную: положить файлы
~/.claude/skills/render-cron-jobs/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/render-cron-jobs/
1Через Skills CLI (Vercel)
npx skills add render-oss/skills --skill render-cron-jobs -a codex2Вручную: положить файлы
.agents/skills/render-cron-jobs/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add render-oss/skills --skill render-cron-jobs -a cursor2Вручную: положить файлы
.cursor/skills/render-cron-jobs/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install render-oss/skills render-cron-jobs2Вручную: положить файлы
.github/skills/render-cron-jobs/SKILL.md1Через Skills CLI (Vercel)
npx skills add render-oss/skills --skill render-cron-jobs -a gemini-cli2Командой платформы
gemini skills install https://github.com/render-oss/skills --path skills/render-cron-jobsВручную: положить файлы
.devin/skills/render-cron-jobs/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add render-oss/skills --skill render-cron-jobs -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о render-cron-jobs
Как установить render-cron-jobs в Claude Code?
Выполните команду npx skills add render-oss/skills --skill render-cron-jobs -a claude-code. Также файл скилла можно положить напрямую по пути ~/.claude/skills/render-cron-jobs/SKILL.md.
В чём разница между cron job и background worker в Render?
Cron job запускается по расписанию, обязательно завершает процесс кодом выхода и ограничен 12 часами. Background worker работает непрерывно и подходит для постоянного разбора очередей.
Можно ли подключить постоянный диск к cron-задаче?
Нет, сервисы cron в Render не поддерживают подключение persistent disks. Все файлы и отчёты нужно сохранять во внешние базы данных или объектные хранилища.
Исходный текст
SKILL.md · MIT
---
name: render-cron-jobs
description: >-
Configures and troubleshoots scheduled tasks on Render using cron job
services. Use when the user needs to run something on a schedule, write a
cron expression, set up a periodic job, migrate from Heroku Scheduler,
choose between cron jobs and background workers, or fix a cron that isn't
firing.
Trigger terms: cron job, scheduled task, periodic job, cron expression,
schedule, run every, timer, Heroku Scheduler migration.
license: MIT
compatibility: Render cron job services
metadata:
author: Render
version: "1.0.0"
category: compute
---
# Render Cron Jobs
This skill covers **Cron Job** services on Render: how schedules run, what the platform guarantees, and how they differ from workers and workflows. Pair it with Blueprint and deploy skills when authoring `render.yaml` or Dashboard settings.
## When to Use
- **Scheduled** work that **starts on a cron**, runs a command, and **exits** when finished
- Choosing between **cron**, **background worker**, or **workflow** for periodic or long-running jobs
- **Blueprint** fields for `type: cron`, `schedule`, and commands
- **Constraints**: no disk, single concurrent run, 12-hour max duration, private-network **outbound** only
- **UTC** scheduling pitfalls (expressions are **not** local time)
Expression cheat sheets, framework `startCommand` examples, and Heroku Scheduler migration mapping live under `references/`.
Before configuring or troubleshooting a cron job's outbound private-network connection, read `references/private-networking.md`.
When choosing between a cron job, worker, and Workflow, read `references/service-types.md`.
## Configuration
- **Schedule**: a **cron expression evaluated in UTC**, not the team’s local timezone. All times in the Dashboard and Blueprints are UTC.
- **Command**: any valid **Linux shell command** or **bash script** path. The process must **exit** when work is done because longer runs consume more billable compute. Confirm current details at [Render pricing](https://render.com/pricing).
- **Source**:
- **Git repository** — Render **builds on push** (same deploy model as other repo-backed services); the built artifact runs on each scheduled invocation.
- **Prebuilt Docker image** — the image is **pulled before each run** and is **not retained between runs** (no warm cache of the image layer set across invocations in the same way as a long-lived service).
## Constraints
- **No persistent disk** — cron job services **cannot** provision or attach Render persistent disks; plan for object storage or databases instead.
- **Single-run guarantee** — at most **one active run** per cron service at a time. A new scheduled tick does not start a second overlapping instance.
- **Maximum run length**: **12 hours** per invocation.
- **Pricing**: Running cron jobs incurs an additional cost. Confirm current details at [Render pricing](https://render.com/pricing).
- **Private network**: cron jobs **can send** traffic **to** other services on the private network; they **cannot receive** inbound private-network connections (no internal hostname for accepting traffic from other services).
## Execution Behavior
- **Manual “Trigger Run”** while a run is **active**: Render **cancels** the active run, then **starts** a new one.
- **New Git build / deploy** does **not** affect a run already **in progress**—the in-flight process keeps using the revision it started with until it exits.
- **Docker-based crons**: the image is **pulled fresh for each run**; do not assume layer or image reuse across invocations like a continuously running container.
- **UTC everywhere**: cron expressions and “midnight” in docs mean **UTC**. A common mistake is copying a local-time schedule into the expression without converting to UTC.
## Cron vs Worker vs Workflow
| Need | Use | Why |
|------|-----|-----|
| Periodic task **under 12h** | **Cron Job** | Scheduled, simple, exits when done |
| **Continuous** job processing | **Background Worker** | Always running, polls a queue |
| Periodic but **over 12h** | **Background Worker** | No 12h cron run ceiling |
| **Scheduled parallel** compute | **Cron Job + Workflow** | Cron triggers workflow runs on a schedule; workflows fan out or orchestrate parallel steps |
## Blueprint Configuration
Cron services use **`type: cron`** with a **`schedule`** and the usual build/start and env wiring:
```yaml
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`**: standard five-field cron (`minute hour day-of-month month day-of-week`), **UTC**.
- **`buildCommand`** / **`startCommand`**: same roles as other non-Docker services; Docker images use image + start command as configured for image-backed crons.
- **`envVars`**: same patterns as web services and workers (secrets, linked databases, etc.).
**YAML note**: the `schedule` value **must be quoted** so characters like `*` are not parsed as YAML aliases or flow syntax.
## Common Patterns
- **Database cleanup** — archive or delete stale rows on a schedule
- **Report generation** — build CSV/PDF and upload to object storage or email
- **External API sync** — pull or push batches on an interval
- **Cache warming** — hit endpoints or rebuild caches before peak traffic
- **Scheduled emails** — digest or reminder sends driven by cron + mail/API
## References
| Topic | File |
|--------|------|
| Private-network scope, internal addresses, and troubleshooting | `references/private-networking.md` |
| Service-type selection and execution models | `references/service-types.md` |
| Expression examples, framework commands, errors, env vars | `references/cron-patterns.md` |
| Heroku Scheduler → Render mapping, blueprint example | `references/migration-from-scheduler.md` |
## Related Skills
- **render-deploy** — First-time deploy, service creation, Dashboard flow
- **render-blueprints** — Full `render.yaml` schema, previews, common mistakes
- **render-background-workers** — Long-lived processes, queues, no 12h cap
- **render-workflows** — Orchestrated and parallel jobs, often triggered on a schedule from cron
<!-- shared:documentation-retrieval -->
## Current documentation retrieval
Whenever this skill directs you to consult current Render documentation:
1. Retrieve the linked Markdown document directly with an available URL-fetching tool or HTTP client, such as `curl`. Do not substitute web-search summaries for the document.
2. Confirm that retrieval succeeded and returned the expected document, then read its contents. Saving a file or printing its path is not sufficient.
3. If the request fails or your tool cannot read the Markdown response, open and read the linked HTML version instead.
4. If neither version can be retrieved, disclose that the current reference is unavailable and follow any topic-specific fallback in the skill. Use bundled guidance only for stable constraints, and do not guess at changeable platform details.
When a task requires multiple references, apply this workflow to each one and distinguish the documents you verified from those that remain unavailable.
<!-- /shared:documentation-retrieval -->
© Render · MIT · render-oss/skills