Sobes.tech
Middle

Predstavte si integračné riešenie: systém A by mal požiadať systém B o generovanie správy (ktoré trvá 2 hodiny a váži 200 MB) a získať výsledok.

sobes.tech AI

Odpoveď od AI

Pre riešenie integrácie, kde systém A žiada systém B o generovanie veľkého správy (2 hodiny tvorby, 200 MB), je lepšie použiť asynchrónny prístup s oznámením o pripravenosti:

  1. Systém A odošle žiadosť na generovanie správy do systému B a dostane jedinečný identifikátor úlohy.
  2. Systém B spustí proces generovania správy na pozadí.
  3. Systém A periodicky pýta systém B na stav pomocou identifikátora úlohy (napríklad cez REST API).
  4. Keď je správa hotová, systém B poskytne odkaz na stiahnutie (napríklad cez HTTP alebo S3 úložisko).
  5. Systém A stiahne správu cez odkaz.

Tento prístup umožňuje neudržiavať spojenie otvorené 2 hodiny a efektívne prenášať veľké súbory. Pre prenos správy je lepšie použiť súborové alebo objektové úložisko (S3, Azure Blob atď.), než to robiť priamo cez API.

Príklad API:

  • POST /reports - vytvorí úlohu, vráti taskId
  • GET /reports/{taskId}/status - stav úlohy
  • GET /reports/{taskId}/download - odkaz na stiahnutie

Toto je klasický vzor "úloha-fronta-oznámenie" s asynchrónnym spracovaním.