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