Middle
Iedomājieties integrācijas risinājumu: sistēma A jālūdz sistēmai B ģenerēt ziņojumu (kas ilgst 2 stundas un sver 200 MB) un saņemt rezultātu.
sobes.tech AI
Atbilde no AI
Integrācijas risinājumam, kur sistēma A pieprasa sistēmai B ģenerēt lielu ziņojumu (2 stundas veidošana, 200 MB), ir labāk izmantot asīnhronu pieeju ar paziņojumu par gatavību:
- Sistēma A nosūta pieprasījumu ziņojuma ģenerēšanai sistēmai B un saņem unikālu uzdevuma identifikatoru.
- Sistēma B sāk ziņojuma ģenerēšanas procesu fonā.
- Sistēma A periodiski jautā sistēmai B pēc uzdevuma identifikatora, lai uzzinātu statusu (piemēram, caur REST API).
- Kad ziņojums ir gatavs, sistēma B nodrošina lejupielādes saiti (piemēram, caur HTTP vai S3 glabātuvi).
- Sistēma A lejupielādē ziņojumu caur saiti.
Šī pieeja ļauj neuzturēt savienojumu atvērtu 2 stundas un efektīvi pārsūtīt lielus failus. Ziņojuma pārsūtīšanai ir labāk izmantot failu vai objektu glabātuvi (S3, Azure Blob utt.), nevis tieši caur API.
API piemērs:
- POST /reports - izveidot uzdevumu, atgriezt taskId
- GET /reports/{taskId}/status - uzdevuma statuss
- GET /reports/{taskId}/download - lejupielādes saite
Tas ir klasiskās "uzdevums-rinda-paziņojums" modeļa ar asīnhronu apstrādi.