Sobes.tech
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:

  1. Süsteem A saadab päringu aruande genereerimiseks süsteemile B ja saab unikaalse ülesande ID.
  2. Süsteem B käivitab taustal aruande genereerimise protsessi.
  3. Süsteem A küsib regulaarselt süsteemilt B ülesande ID-ga, et teada saada staatust (näiteks REST API kaudu).
  4. Kui aruanne on valmis, pakub süsteem B allalaadimislinki (näiteks HTTP või S3 salvestuse kaudu).
  5. 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.