Sobes.tech
Middle

შექმენით ინტეგრაციის გადაწყვეტილება: სისტემა A უნდა მოითხოვოს სისტემიდან B ანგარიშის გენერაცია (რომელიც 2 საათს გრძელდება და 200 მბ-ია) და მიიღოს შედეგი.

sobes.tech AI

პასუხი AI-სგან

ინტეგრაციის გადაწყვეტილებისთვის, სადაც სისტემა A სთხოვს სისტემას B დიდი ანგარიშის (2 საათი შექმნა, 200 მბ) გენერირებას, უკეთესია გამოიყენოს ასინქრონული მიდგომა, სადაც მზადყოფნის შესახებ შეტყობინება მიიღება:

  1. სისტემა A გამოგზავნის მოთხოვნას ანგარიშის გენერირებაზე სისტემას B და მიიღებს უნიკალურ დავალების იდენტიფიკატორს.
  2. სისტემა B იწყებს ანგარიშის გენერირების პროცესს ფონზე.
  3. სისტემა A პერიოდულად იკითხავს სისტემას B დავალების იდენტიფიკატორით, რათა გაიგოს სტატუსი (მაგალითად, REST API-ის მეშვეობით).
  4. როდესაც ანგარიში მზად იქნება, სისტემა B უზრუნველყოფს ჩამოტვირთვის ლინკს (მაგალითად, HTTP ან S3 შენახვის მეშვეობით).
  5. სისტემა A ჩამოტვირთავს ანგარიშს ლინკით.

ეს მიდგომა საშუალებას აძლევს არ გახსნას კავშირი 2 საათის განმავლობაში და ეფექტურად გადაიტანოს დიდი ფაილები. ანგარიშის გადაცემისთვის უკეთესია გამოიყენოს ფაილური ან ობიექტური შენახვა (S3, Azure Blob და ა.შ.), ვიდრე პირდაპირ API-ის მეშვეობით.

API-ის მაგალითი:

  • POST /reports - შექმნის დავალებას, აბრუნებს taskId-ს
  • GET /reports/{taskId}/status - დავალების სტატუსი
  • GET /reports/{taskId}/download - ჩამოტვირთვის ლინკი

ეს არის კლასიკური "დავალება-გადაზიდვა-შეტყობინება" მოდელი, ასინქრონული დამუშავებით.