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 "" }