Sobes.tech
Middle+

4 - rýchle prijímanie prichádzajúcich úloh, 5 - vrátenie výsledku úlohy na požiadanie 6 - ak nie je výsledok, vrátenie príslušného stavu /* Procesor - služba, ktorá vykonáva dlhú, zdrojovo náročnú operáciu. Už je implementovaná Chyby, ktoré vracia, sú výlučne spojené s nesprávnymi vstupnými údajmi, sú stabilné a opätovné požiadanie je zbytočné */ type Processor interface { Process([]byte) ([]byte, error) } /* Predpokladáme, že máme generátor jedinečných identifikátorov (napríklad UUID). Generator garantuje, že nedôjde ku kolíziám */ type ID string // func NewID() ID /* Plánovač prijíma úlohy od klientov, ich pridáva do fronty a začína ich spracovávať. Zabezpečuje, že súčasne beží najviac 'threads' metód spracovania Umožňuje skontrolovať stav úlohy a získať výsledok neblokuje svoje verejné metódy na spracovanie */ type Scheduler struct { processor Processor } func NewScheduler( prc Processor, threads int, ) *Scheduler { // inicializačná logika return &Scheduler{ processor: prc, } } func (s *Scheduler) Queue(request []byte) ID { // implementácia return "" }