Sobes.tech
Middle+

4 - kiiresti vastu võtta sisenevad ülesanded, 5 - tagastada ülesande tulemus päringu korral 6 - kui tulemust pole, tagasta sobiv staatus /* Protsessor - teenus, mis teostab pikka aega kestvat, ressursimahukat operatsiooni. See on juba rakendatud Tagastatavad vead on ainult seotud vale sisendandmetega, on stabiilsed ja nende korduv taotlemine on mõttetu */ type Processor interface { Process([]byte) ([]byte, error) } /* Oletame, et meil on unikaalsete identifikaatorite (näiteks UUID) generaator. Generator tagab, et kokkupõrkeid ei toimu */ type ID string // func NewID() ID /* Ajakava võtab klientidelt ülesandeid, paneb need järjekorda ja alustab töötlemist. Tagab, et samaaegselt töötab mitte rohkem kui 'threads' meetodit Võimaldab kontrollida ülesande staatust ja saada tulemust Ei blokeeri oma avalikke töötlusmeetodeid */ type Scheduler struct { processor Processor } func NewScheduler( prc Processor, threads int, ) *Scheduler { // algusloogika return &Scheduler{ processor: prc, } } func (s *Scheduler) Queue(request []byte) ID { // teostamine return "" }