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 - ჩამოტვირთვის ლინკი
ეს არის კლასიკური "დავალება-გადაზიდვა-შეტყობინება" მოდელი, ასინქრონული დამუშავებით.