Une tâche planifiée, c’est une expression cron plus une URL de webhook. À chaque déclenchement, Canner envoie une requête HTTP POST à cette URL; votre application fait le travail et renvoie un 2xx pour signaler le succès. Comme la tâche n’est qu’une requête vers votre propre point de terminaison, il n’y a aucun nouvel environnement à apprendre — vous écrivez du code de route ordinaire. Pour exécuter du SQL selon une planification plutôt qu’un webhook, utilisez les requêtes SQL planifiées.
Créer une tâche
Allez à Calcul → Nouvelle tâche et remplissez quatre champs : le projet concerné, un nom, l’URL de webhook à appeler (généralement une route de votre application, p. ex. https://votre-app.canner.ca/api/cron) et une planification cron. Une description facultative vous aide à vous rappeler ce qu’elle fait.
La planification
Les planifications utilisent le cron standard à 5 champs — minute heure jour-du-mois mois jour-de-semaine — et toutes les heures sont en UTC. Le formulaire affiche la prochaine exécution à mesure que vous tapez pour la vérifier.
0 9 * * * # every day at 09:00 UTC */15 * * * * # every 15 minutes 0 0 * * 1 # every Monday at midnight UTC 0 */6 * * * # every 6 hours
Écrire le gestionnaire
Votre point de terminaison doit accepter un POST, faire son travail et renvoyer un statut 2xx. Une réponse non-2xx, un délai dépassé ou une erreur de connexion est enregistré comme une exécution échouée. Comme l’URL est joignable sur l’internet public, protégez-la — le plus simple est un secret partagé stocké comme variable d’environnement et vérifié à chaque requête :
// app/api/cron/route.ts (Next.js) — any framework works
export async function POST(req: Request) {
// optional: verify a shared secret you set as an env var
if (req.headers.get("x-cron-key") !== process.env.CRON_KEY) {
return new Response("forbidden", { status: 403 });
}
await runDailyDigest();
return new Response("ok"); // 2xx = success
}Exécutions, réessais et historique
Ouvrez une tâche pour voir son historique d’exécution — chaque exécution est marquée Réussie, Échouée, Délai dépassé ou En cours. Vous pouvez déclencher une tâche manuellement depuis sa page de détail pour tester le point de terminaison sans attendre le prochain déclenchement. Les requêtes trop longues sont interrompues au délai de la plateforme et enregistrées comme un délai dépassé; concevez donc des gestionnaires qui terminent vite (ou lancez un traitement en arrière-plan et renvoyez immédiatement).
Forfaits
Les tâches planifiées sont offertes sur tous les forfaits, sans limite sur le nombre que vous pouvez créer. Les forfaits diffèrent par la priorité d’exécution : les tâches s’exécutent au meilleur effort sur Démarrage, de façon prioritaire sur Live, et avec une capacité dédiée illimitée sur Dédié. Voir Forfaits et limites pour la comparaison complète.