Sobes.tech
Middle+

4 - შემოსული დავალებების სწრაფად მიღება, 5 - მოთხოვნის მიხედვით დავალების შედეგის დაბრუნება 6 - თუ შედეგი არ არის, შესაბამისი სტატუსის დაბრუნება /* პროცესორი - სერვისი, რომელიც ახორციელებს ხანგრძლივ, რესურსის ინტენსიურ ოპერაციას. უკვე არის განხორციელებული მისი დაბრუნებული შეცდომები უკავშირდება მხოლოდ არასწორ შემოსავალ მონაცემებს, სტაბილურია და მათი ხელახლა მოთხოვნა უსარგებლოა */ type Processor interface { Process([]byte) ([]byte, error) } /* ვივარაუდოთ, რომ გვაქვს უნიკალური იდენტიფიკატორების (მაგ., UUID) გენერატორი. გენერატორი გარანტიას იძლევა, რომ არ იქნება შეჯახება */ type ID string // func NewID() ID /* სკედულატორი იღებს დავალებებს მომხმარებლებისგან, მათ რიგში დებს და იწყებს პროცესირებას. მოწოდებს, რომ ერთდროულად არ მუშაობს მეტი, ვიდრე 'threads' მეთოდი მოწოდებს შესაძლებლობას, შეამოწმოს დავალების სტატუსი და მიიღოს შედეგი არ ბლოკავს თავის საჯარო მეთოდებს პროცესირებისთვის */ type Scheduler struct { processor Processor } func NewScheduler( prc Processor, threads int, ) *Scheduler { // ინიციალიზაციის ლოგიკა return &Scheduler{ processor: prc, } } func (s *Scheduler) Queue(request []byte) ID { // განხორციელება return "" }