Que fait convex-cron-jobs ?
Modèles de fonctions planifiées pour les tâches en arrière-plan, incluant la planification par intervalles, les expressions cron, la surveillance des travaux, les stratégies de relance et les meilleures pratiques pour les tâches de longue durée.
Aperçu
Ce référentiel fournit des modèles et des conseils pour implémenter des tâches planifiées dans Convex. Il couvre les fonctionnalités intégrées de Convex pour la planification, la surveillance et la gestion des tâches récurrentes.
Fonctionnalités
- Planification par intervalles : Exécuter des tâches à intervalles réguliers (toutes les heures, tous les jours, etc.) en utilisant
cronJobs. - Expressions cron : Configurer des planifications flexibles avec la syntaxe cron standard.
- Surveillance des travaux : Suivre l'état des tâches planifiées, les exécutions réussies et les échecs.
- Stratégies de relance : Mettre en œuvre des mécanismes de relance en cas d'échec transitoire.
- Tâches longues : Partitionner ou fractionner les tâches volumineuses pour respecter les limites de temps.
Utilisation
Fonction cron de base
import { cronJobs } from "convex/server";
import { internal } from "./_generated/api";
const crons = cronJobs();
crons.interval("cleanup-logs", { hours: 24 }, internal.tasks.cleanupLogs);
export default crons;
Planification avec expression cron
crons.cron("generate-report", "0 6 * * 1", internal.tasks.generateReport);
Meilleures pratiques
- Utiliser
internalpour les tâches planifiées afin d'éviter une exposition involontaire. - Toujours gérer les exceptions dans les tâches planifiées.
- Pour les tâches longues, envisager de les diviser en sous-tâches planifiées de manière atomique.
- Surveiller les échecs via les logs Convex ou des tableaux de bord externes.
Références
Contributeur original : waynesutton