Sobes.tech
Middle+

4 - greitai priimti įeinančius uždavinius, 5 - grąžinti uždavinio rezultatą pagal užklausą 6 - jei nėra rezultato, grąžinti atitinkamą būseną /* Procesorius - paslauga, kuri vykdo ilgą, išteklių reikalaujančią operaciją. Ji jau įgyvendinta Klaidų, kurias jis grąžina, yra tik susijusios su neteisingais įvesties duomenimis, yra stabilios ir jų pakartotinis užklausimas yra beprasmiškas */ type Processor interface { Process([]byte) ([]byte, error) } /* Manome, kad turime unikalių identifikatorių generatorių (pvz., UUID). Generatorius garantuoja, kad nebus susidūrimų */ type ID string // func NewID() ID /* Tvarkaraštis priima užduotis iš klientų, juos įkelia į eilę ir pradeda apdorojimą. Užtikrina, kad vienu metu veikia ne daugiau kaip 'threads' metodų Suteikia galimybę patikrinti užduoties būseną ir gauti rezultatą ne blokuoja savo viešųjų metodų apdorojimo */ type Scheduler struct { processor Processor } func NewScheduler( prc Processor, threads int, ) *Scheduler { // inicializacijos logika return &Scheduler{ processor: prc, } } func (s *Scheduler) Queue(request []byte) ID { // įgyvendinimas return "" }