Middle
Նկարագրեք ինտեգրացիոն լուծում: համակարգը A պետք է խնդրի համակարգ B-ից հաշվետվության ստեղծում (որը ձևավորվում է 2 ժամում և քաշում է 200 ՄԲ) և ստանա արդյունքը.
sobes.tech AI
Պատասխան AI-ից
Ինտեգրացիոն լուծման համար, որտեղ համակարգը A խնդրում է համակարգ B-ից մեծ հաշվետվություն ստեղծել (2 ժամ ձևավորում, 200 ՄԲ), ավելի լավ է օգտագործել ասինխրոն մոտեցում՝ պատրաստության մասին ծանուցմամբ.
- Համակարգ A-ն ուղարկում է հաշվետվության ստեղծման հարցում համակարգ B-ին և ստանում է եզակի առաջադրանքի նույնականացուցիչ:
- Համակարգ B-ն սկսում է հաշվետվության ստեղծման գործընթացը ֆոնային ռեժիմում:
- Համակարգ A-ն ժամանակ առ ժամանակ հարցնում է համակարգ B-ին առաջադրանքի նույնականացուցիչով՝ իմանալու վիճակը (օրինակ՝ REST API-ի միջոցով):
- Երբ հաշվետվությունը պատրաստ է, համակարգ B-ն տրամադրում է ներբեռնելու հղում (օրինակ՝ HTTP կամ S3 պահեստի միջոցով):
- Համակարգ A-ն ներբեռնում է հաշվետվությունը հղումով:
Այս մոտեցումը թույլ է տալիս չպահել կապը բաց 2 ժամ և արդյունավետ փոխանցել մեծ ֆայլեր: Հաշվետվության փոխանցման համար ավելի լավ է օգտագործել ֆայլային կամ օբյեկտային պահեստ (S3, Azure Blob և այլն), ոչ թե ուղղակի API-ի միջոցով:
API-ի օրինակ՝
- POST /reports - ստեղծել առաջադրանք, վերադարձնել taskId
- GET /reports/{taskId}/status - առաջադրանքի վիճակ
- GET /reports/{taskId}/download - ներբեռնելու հղում:
Սա դասական "առաջադրանք-սպասարկղ-հաղորդում" մոդել է՝ ասինխրոն մշակմամբ: