Middle
Imaginez une solution d'intégration : le système A doit demander au système B de générer un rapport (qui prend 2 heures à être formé et pèse 200 Mo) et obtenir le résultat.
sobes.tech IA
Réponse de l'IA
Pour une solution d'intégration où le système A demande au système B de générer un rapport volumineux (2 heures de traitement, 200 Mo), il est préférable d'utiliser une approche asynchrone avec notification de disponibilité:
- Le système A envoie une requête de génération de rapport au système B et reçoit un identifiant de tâche unique.
- Le système B lance le processus de génération en arrière-plan.
- Le système A interroge périodiquement le système B via l'identifiant de tâche pour connaître le statut (par exemple, via REST API).
- Lorsque le rapport est prêt, le système B fournit un lien pour le télécharger (par exemple, via HTTP ou stockage S3).
- Le système A télécharge le rapport via le lien.
Cette approche permet de ne pas maintenir la connexion ouverte pendant 2 heures et de transférer efficacement de gros fichiers. Pour le transfert du rapport, il est préférable d'utiliser un stockage de fichiers ou un stockage d'objets (S3, Azure Blob, etc.), plutôt que via l'API directement.
Exemple d'API:
- POST /reports - créer une tâche, retourne taskId
- GET /reports/{taskId}/status - statut de la tâche
- GET /reports/{taskId}/download - lien de téléchargement
Ceci est un modèle classique "tâche-file-délai" avec traitement asynchrone.