# 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

# 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

# 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

# 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.
â BC Reporting BC Security â
