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