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:
- Systém A odošle žiadosť na generovanie správy do systému B a dostane jedinečný identifikátor úlohy.
- Systém B spustí proces generovania správy na pozadí.
- Systém A periodicky pýta systém B na stav pomocou identifikátora úlohy (napríklad cez REST API).
- Keď je správa hotová, systém B poskytne odkaz na stiahnutie (napríklad cez HTTP alebo S3 úložisko).
- 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.