Les adaptateurs
Un adaptateur d’Agenda est un composant permettant de gérer la persistance et la récupération des tâches planifiées selon le moteur de stockage sous-jacent.
Qu’est-ce qu’un adaptateur Agenda ?
Un adaptateur Agenda est un composant permettant de gérer la planification et la persistance des tâches planifiées en fonction du moteur sous-jacent.
Il encapsule :
Le moteur d'exécution des tâches (ICronService) : responsable du déclenchement effectif des tâches.
Le moteur de stockage des tâches (IMemoryAdapter) : garantit la persistance et la récupération des tâches planifiées.
Grâce aux adaptateurs, l’agent peut changer de moteur sans modifier sa logique métier.
Fonctionnement des adaptateurs Agenda
Tous les adaptateurs doivent implémenter deux interfaces clés :
ICronService : Gestion de l'exécution des tâches
/**
* Interface pour le service de planification des tâches
*/
export interface ICronService {
/**
* Planifie une tâche en utilisant une expression cron.
* @param {string} expression - Expression cron définissant l’exécution
* @param {Function} callback - Fonction exécutée lors du déclenchement
* @returns {ICronJob} Interface de gestion de la tâche
*/
schedule(expression: string, callback: () => void): ICronJob;
}
/**
* Interface pour contrôler une tâche planifiée
*/
export interface ICronJob {
/**
* Démarre la tâche planifiée
*/
start(): void;
/**
* Arrête la tâche planifiée
*/
stop(): void;
}IMemoryAdapter : Persistance des tâches planifiées
Ainsi, les adaptateurs permettent d'intégrer plusieurs moteurs sans modifier l'agent.
Adaptateurs intégrés (par défaut)
Le framework propose plusieurs adaptateurs intégrés.
1. NodeCronAdapter (exécution des tâches)
Basé sur la bibliothèque node-cron.
Idéal pour exécuter des tâches en local sans dépendance externe.
2. InMemoryAdapter (stockage en mémoire)
Stocke les tâches planifiées en RAM via une
Map.Non persistant : les tâches sont perdues après un redémarrage.
Idéal pour les tests et le prototypage.
Créer un nouvel adaptateur : Exemple avec Redis
Si on veut persister les tâches avec Redis, on peut créer un nouvel adaptateur.
1. Installer la dépendance
2. Implémenter l’adaptateur
Intégrer un adaptateur dans l’Agenda
Une fois l’adaptateur Redis implémenté, on peut l’intégrer dans le module Agenda.
Mis à jour