# BC Scheduling

De nombreux processus et Ă©vĂ©nements dans les diffĂ©rents BCs de la plateforme Mojaloop Switch nĂ©cessitent une fonctionnalitĂ© permettant de dĂ©clencher des actions Ă  des moments prĂ©cis ou selon un calendrier dĂ©fini. Afin de prendre en charge ce besoin de maniĂšre centralisĂ©e et d’éviter d’implĂ©menter cette fonctionnalitĂ© dans chaque BC, un seul BC dĂ©diĂ© Ă  la planification sera introduit et mis en Ɠuvre sur la plateforme Switch.

Pour planifier un processus ou un Ă©vĂ©nement, un BC Client soumet une demande au Scheduling BC pour crĂ©er un rappel destinĂ© Ă  ĂȘtre dĂ©clenchĂ© Ă  un horaire prĂ©cis ou selon une rĂ©currence. Le Scheduling BC maintient un registre de tous les rappels reçus et, lorsque le moment fixĂ© arrive, il envoie une notification du rappel au BC Client concernĂ©.

De plus, le Scheduling BC fournira également des services au Switch pour permettre aux BC Clients et aux administrateurs du Switch de gérer les rappels.

# Termes

Le(s) terme(s) suivant(s) sont utilisés dans ce BC :

Terme Description
BC Client Tout autre BC utilisant les services du Scheduling BC

# Cas d’Utilisation

L’état des cas d’utilisation (UC) pour le Scheduling BC est le suivant :

UCs Disponibles UCs Prévus
Cas d'utilisation Description Cas d'utilisation Description
CrĂ©er un rappel Le BC Client demande la crĂ©ation d’un rappel RequĂȘte de rappel du client Le BC Client interroge ses propres rappels
Supprimer un rappel Le BC Client demande la suppression d’un rappel RequĂȘte de rappel de l’administrateur L’administrateur de la plateforme interroge tous les rappels
Déclenchement du rappel Le Scheduling BC exécute le déclenchement du rappel lorsque le moment est venu
Mettre à jour un rappel Non fourni. Solution recommandée : supprimer et créer un nouveau Rappel

# Créer un rappel

# Description

Ce flux permet au Switch de traiter les demandes autorisées des BC Clients pour créer des rappels.

# Diagramme de flux

Créer un rappel

# Déclenchement du rappel

# Description

Ce flux permet au Switch de traiter les rappels envoyés du Scheduling BC à un BC Client pour exécuter une tùche, ou simplement comme rappel.

# Diagramme de flux

Déclenchement du rappel

# Suppression d’un rappel (rĂ©current)

# Description

Ce flux permet au Switch de gĂ©rer les messages des BC Clients autorisĂ©s au Scheduling BC pour supprimer un Rappel. Si le Scheduling BC ne parvient pas Ă  traiter l’instruction, il envoie un message d’alerte au Notifications BC.

# Diagramme de flux

Suppression d’un rappel rĂ©current

# Notes

# CrĂ©er un Rappel – DonnĂ©es requises

La demande de Création de Rappel doit inclure les données suivantes :

Donnée Description
Identifiant nom/id
Définition Cron récurrent ?, intervalle de temps ?
Transport de DĂ©clenchement Callback HTTP/ÉvĂ©nement ; URL de Callback ou Sujet d'ÉvĂ©nement
Payload Spécial opaque pour le Scheduling BC
Conditions de récupération nouvelle tentative, replanification, abandon, abandon
Alertes notification, journalisation en cas d’exception
Actions registre des processus BC automatisables/planifiables

# BC Scheduling – Exigences

Le Scheduling BC doit répondre aux exigences suivantes :

  • Les rappels ne doivent ĂȘtre dĂ©clenchĂ©s qu’une seule fois

  • Le BC doit conserver l’historique des Rappels dĂ©clenchĂ©s

  • Le BC doit garder l’historique des actions de CrĂ©ation/Lecture/Suppression

    • Les mises Ă  jour seront facilitĂ©es via les actions Suppression/CrĂ©ation, comme indiquĂ© dans la liste des UCs disponibles
  • Lots de tĂąches (Job batches)

  • Offrir plusieurs options d’interface (gRPC, REST, HTTP, etc.)

  • Les rappels doivent ĂȘtre dĂ©clenchĂ©s avec un callback HTTP, pas un appel gRPC, ou vers un sujet spĂ©cifique

  • Il ne doit pas avoir la capacitĂ© de traiter de la logique externe au Scheduling BC lui-mĂȘme

  • Utiliser exclusivement les horodatages UTC basĂ©s sur Linux pour Ă©viter les problĂšmes de synchronisation

Remarque : Il est supposé que le systÚme sous-jacent maintiendra une heure parfaite.

# BC Scheduling – Exigences en suspens

Les exigences d’accĂšs pour le Scheduling BC restent Ă  dĂ©finir.

# BC Scheduling – Exceptions

  • Instructions malformĂ©es
    • Date/heure invalide, y compris des heures dans le passĂ©
    • BC ou commande invalide
  • Échec d’exĂ©cution (identifiĂ© via le callback)
  • AutoritĂ© insuffisante du BC Client pour rĂ©aliser l’opĂ©ration CRD
  • Échec du traitement/exĂ©cution du Rappel

# Questions

Certaines questions sont apparues lors des sessions d’architecture de rĂ©fĂ©rence. JugĂ©es utiles pour le plus grand nombre, elles sont incluses ci-dessous :

  • AprĂšs que la tĂąche planifiĂ©e a Ă©tĂ© initiĂ©e, le Scheduling BC reste-t-il responsable du suivi de sa progression ?

    • RĂ©ponse : Non. Lorsque le rappel est dĂ», il est communiquĂ© au BC Client selon la mĂ©thode prĂ©vue, et la responsabilitĂ© du rappel est alors transfĂ©rĂ©e au BC Client.
  • Est-ce le BC Client ou la personne qui a planifiĂ© le Rappel qui est notĂ© comme « Utilisateur » par le Scheduling BC ? En d’autres termes, quel ID est inscrit dans la piste d’audit (audit trail) ?

    • RĂ©ponse : Cela doit ĂȘtre dĂ©terminĂ© par le BC Client, selon l’action qu’il entreprend Ă  la rĂ©ception du rappel.