Sobes.tech
Middle+

4 - rychle přijímat příchozí úkoly, 5 - vrátit výsledek úkolu na požádání 6 - pokud není výsledek, vrátit odpovídající stav /* Procesor - služba, která provádí dlouhou, náročnou operaci. Je již implementována Chyby, které vrací, jsou výhradně spojeny s nesprávnými vstupními údaji, jsou stabilní a opětovné požádání je zbytečné */ type Processor interface { Process([]byte) ([]byte, error) } /* Předpokládáme, že máme generátor unikátních identifikátorů (například UUID). Generátor zaručuje, že nedojde ke kolizím */ type ID string // func NewID() ID /* Plánovač přijímá úkoly od klientů, zařadí je do fronty a spustí je ke zpracování. Zajišťuje, že současně běží nejvýše 'threads' metod zpracování Umožňuje zkontrolovat stav úkolu a získat výsledek neblokuje své veřejné metody pro zpracování */ 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 { // implementace return "" }