Tâches planifiées
Le hub embarque un planificateur (pg-boss, dans la base mo_hub). Chaque tâche est une ligne du catalogue, globale ou
propre à un workspace ; les tâches de workspace sont créées automatiquement au provisioning.
Garanties
Section intitulée « Garanties »- Exécution unique : même avec plusieurs instances du hub, une tâche ne s’exécute jamais deux fois en parallèle.
- Délai maximal (
timeout_seconds) : au-delà, l’exécution est marquée bloquée et une alertecron_stuckest levée. - Relances (
max_retries) en cas d’échec, puis alertecron_failed. - Historique : début, durée, statut, tentative, instance, sortie ; les dernières lignes de journal en base, le journal complet
dans Silo (
mo-hub/cron/<runId>.log).
Planification
Section intitulée « Planification »Expression cron à 5 champs, avec fuseau horaire. La console affiche un aperçu en clair des prochaines exécutions
(POST /cron/preview). Pour chaque tâche : activer / désactiver, lancer maintenant, annuler une exécution en cours.
Les tâches métier sont replanifiables par les rôles owner / admin du workspace ; les tâches d’infrastructure seulement depuis la console.
Catalogue
Section intitulée « Catalogue »Tâches globales
Section intitulée « Tâches globales »| Code | Rôle |
|---|---|
backups.hub |
sauvegarde de la base du hub |
backups.keycloak |
export des realms Keycloak |
backups.openbao |
export chiffré des secrets |
backups.prune |
application des rétentions |
infra.probe |
sondes d’état des serveurs, bases et moteurs |
alerts.evaluate |
évaluation des règles d’alerte |
webhooks.retry |
nouvelles tentatives des webhooks en échec |
stats.aggregate |
agrégation des statistiques plateforme |
Tâches par workspace
Section intitulée « Tâches par workspace »| Code | Rôle |
|---|---|
backups.full / backups.wal / backups.restore_test |
sauvegarde complète, archivage continu, test de restauration |
coupons.expire |
coupons échus → expirés |
points.expire |
expiration des lots de points (FIFO) |
points.expiry_warnings |
alertes clients avant expiration |
points.reservations.expire |
libération des réservations de points non résolues |
points.activate |
activation des points en attente (délai d’activation) |
counters.periodic_reset |
remise à zéro des compteurs périodiques |
transactions.expire_pending |
expiration des tickets restés en attente |
stats.rollup_daily |
agrégats journaliers |
gdpr.retention |
purge selon les durées de conservation |
gdpr.anonymize_inactive |
anonymisation des clients inactifs |
silo.cleanup |
nettoyage des fichiers expirés |
customers.birthdays |
émission des événements d’anniversaire |
offers.expire |
offres dont la validité est passée → expirées |
abtests.close |
clôture des tests A/B arrivés à échéance |
sync.run |
exécution d’un connecteur de synchronisation (une tâche par connecteur) |
segments.compute |
calcul d’un segment (une tâche par segment) |