Synthèse automatique
Explique comment déclarer des tâches planifiées récurrentes dans Encore.ts en associant un CronJob à un endpoint api() existant.
Points forts
- Montre le patron exact de déclaration au niveau du package avec new CronJob, en précisant que l'endpoint doit être défini avant
- Clarifie la différence entre every (intervalle qui doit diviser 24h) et schedule (expression cron à 5 champs en UTC)
- Fournit un tableau d'expressions cron courantes directement réutilisables
- Rappelle les pièges de production : crons silencieux en local, endpoint en expose: false, idempotence nécessaire
Limites
- Ne couvre que Encore.ts : aucune indication pour Encore Go ni pour d'autres frameworks
- Ne détaille pas la gestion des erreurs, des retries ou de l'observation des exécutions cron
- Suppose que l'endpoint api() existe déjà et ne montre pas comment écrire la logique métier
À utiliser dès qu'un utilisateur veut exécuter du code à intervalle régulier ou à une heure précise dans une application Encore.ts.
À éviter si le travail doit être déclenché par un événement plutôt que par le temps, ou si le projet n'utilise pas Encore.
Analyse de sécurité
SûrThis skill is purely declarative documentation for using Encore.ts CronJob with no executable commands, destructive actions, network calls, or sensitive data handling. It only provides code examples and scheduling guidance.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
In my Encore.ts service I need a job that aggregates the previous day's orders every day at 02:00 UTC. Create the internal endpoint and wire up the CronJob.Add a scheduled job to my Encore app that runs every 30 minutes to refresh a cache, using the every syntax.Set up a cron in Encore.ts that runs every Monday at 09:00 UTC to generate a weekly report, and make sure the endpoint can't be called externally.name: encore-cron
description: >-
Schedule periodic / recurring work in Encore.ts using CronJob from encore.dev/cron. Covers every: "1h" interval syntax and schedule: "0 9 * * 1" cron expressions.
when_to_use: >-
User wants to run a job on a schedule — anything with the words schedule, scheduled, daily, hourly, weekly, periodic, recurring, every N minutes/hours, "at HH:MM UTC", midnight, batch job, aggregation job, nightly, cleanup job, or background work that runs on a timer rather than in response to a request. Trigger phrases: "every day at 02:00 UTC", "daily aggregation", "run hourly", "scheduled task", "cron", "nightly cleanup", "on a schedule".
Encore Cron Jobs
Instructions
A CronJob declaration in Encore.ts ties a schedule to an existing api(...) endpoint. The endpoint runs at the chosen cadence. Declare the CronJob at package level — not inside a function.
import { CronJob } from "encore.dev/cron";
import { api } from "encore.dev/api";
// 1. The endpoint to call (typically internal: expose: false)
export const aggregateDailyOrders = api(
{ expose: false },
async (): Promise<void> => {
// Aggregation logic
}
);
// 2. Package-level cron declaration
const _ = new CronJob("aggregate-daily-orders", {
title: "Aggregate orders for the previous day",
schedule: "0 2 * * *", // 02:00 UTC every day
endpoint: aggregateDailyOrders,
});
Schedule Formats
| Field | Example | Description |
|---|---|---|
| every | "1h", "30m", "6h" | Simple interval. Must divide 24h evenly — "7h" is invalid. |
| schedule | "0 9 * * 1" | Standard cron expression (5 fields, UTC). |
Common cron expressions
| Cron | Meaning |
|---|---|
| "0 * * * *" | Every hour, on the hour |
| "0 2 * * *" | Daily at 02:00 UTC |
| "0 0 * * 0" | Weekly on Sunday at midnight UTC |
| "0 4 15 * *" | 04:00 UTC on the 15th of each month |
Important behaviour
- Cron jobs do not execute when running locally with
encore run. Only deployed environments fire crons. - The cron endpoint should be
expose: falseso it can't be triggered externally — only the cron scheduler should call it. - All times in
scheduleare UTC. Convert from local time when designing the schedule. - The endpoint must already exist at module load — declare it before the
CronJob.
Guidelines
- Use
everyfor "run on a regular interval" (must divide 24h). - Use
schedulefor specific times of day or days of week. - Keep endpoint logic idempotent: a cron may fire late or be retried in a redeploy window.
- For event-driven background work (not time-driven), use the
encore-pubsubskill instead.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/scheduling-cron-jobs-in-encore-ts-mtnxbry5/download' --output '.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5/SKILL.md.part' && mv '.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5/SKILL.md.part' '.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5/SKILL.md' && test -s '.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/encore-cron' && cp -R '.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5' '.claude/skills/encore-cron'Cursor
test -f '.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5/SKILL.md' && test -s '.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/encore-cron' && cp -R '.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5' '.cursor/skills/encore-cron'Codex
test -f '.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5/SKILL.md' && test -s '.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/encore-cron' && cp -R '.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5' '.agents/skills/encore-cron'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5'openskills read 'scheduling-cron-jobs-in-encore-ts-mtnxbry5'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/scheduling-cron-jobs-in-encore-ts-mtnxbry5/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.