Middle
Kujutage ette integratsioonilahendust: süsteem A peab taotlema süsteemilt B raporti koostamist (mis kestab 2 tundi ja kaalub 200 MB) ning saama tulemuse.
sobes.tech AI
Vastus AI-lt
Integratsioonilahenduse puhul, kus süsteem A küsib süsteemilt B suure aruande (2 tundi koostamine, 200 MB), on parem kasutada asünkroonset lähenemist koos valmisoleku teavitamisega:
- Süsteem A saadab päringu aruande genereerimiseks süsteemile B ja saab unikaalse ülesande ID.
- Süsteem B käivitab taustal aruande genereerimise protsessi.
- Süsteem A küsib regulaarselt süsteemilt B ülesande ID-ga, et teada saada staatust (näiteks REST API kaudu).
- Kui aruanne on valmis, pakub süsteem B allalaadimislinki (näiteks HTTP või S3 salvestuse kaudu).
- Süsteem A laadib aruande alla lingi kaudu.
See lähenemine võimaldab mitte hoida ühendust avatud 2 tundi ja tõhusalt suureid faile üle kanda. Aruande edastamiseks on parem kasutada failide või objektide salvestust (S3, Azure Blob jms), mitte otse API kaudu.
API näide:
- POST /reports - loo ülesanne, tagasta taskId
- GET /reports/{taskId}/status - ülesande staatus
- GET /reports/{taskId}/download - allalaadimislink
See on klassikaline "ülesanne-järjekord-teavitus" muster asünkroonse töötlemisega.