Middle
Zamislite rešenje za integraciju: sistem A treba da zatraži od sistema B generisanje izveštaja (koji traje 2 sata i teži 200 MB) i da dobije rezultat.
sobes.tech АИ
Одговор од АИ
За решење за интеграцију у којем систем А тражи од система Б да генерише велики извештај (2 часа формирања, 200 МБ), боље је користити асинхрони приступ са обавештењем о спремности:
- Систем А шаље захтев за генерисање извештаја систему Б и добија јединствени идентификатор задатка.
- Систем Б покреће процес генерисања извештаја у позадини.
- Систем А периодично пита систем Б за статус помоћу идентификатора задатка (нпр. преко REST API).
- Када је извештај спреман, систем Б пружа линк за преузимање (нпр. преко HTTP или S3 складишта).
- Систем А преузима извештај преко тог линка.
Овај приступ омогућава да се не одржава веза отворена 2 часа и ефикасно преносе велики фајлови. За пренос извештаја, боље је користити складиште датотека или објектно складиште (S3, Azure Blob итд.), а не директно преко API.
Пример API:
- POST /reports - креира задатак, враћа taskId
- GET /reports/{taskId}/status - статус задатка
- GET /reports/{taskId}/download - линк за преузимање
Ово је класичан образац "задатак-ред-обавештење" са асинхроним обрадом.