Sobes.tech
Middle+

4 - ātri pieņem ienākošos uzdevumus, 5 - atgriezt uzdevuma rezultātu pēc pieprasījuma 6 - ja rezultāts nav, atgriezt atbilstošo statusu /* Procesors - pakalpojums, kas veic ilgu, resursu intensīvu operāciju. Tas jau ir īstenots Atgrieztās kļūdas ir saistītas tikai ar nepareiziem ievades datiem, ir stabilas un atkārtota pieprasīšana ir bezjēdzīga */ type Processor interface { Process([]byte) ([]byte, error) } /* Pieņemam, ka mums ir unikālu identifikatoru ģenerators (piemēram, UUID). Ģenerators garantē, ka nebūs sadursmju */ type ID string // func NewID() ID /* Grafiks pieņem uzdevumus no klientiem, tos pievieno rindai un sāk apstrādi. Nodrošina, ka vienlaicīgi darbojas ne vairāk kā 'threads' metodes Sniedz iespēju pārbaudīt uzdevuma statusu un saņemt rezultātu ne bloķē savas publiskās metodes apstrādei */ type Scheduler struct { processor Processor } func NewScheduler( prc Processor, threads int, ) *Scheduler { // inicializācijas loģika return &Scheduler{ processor: prc, } } func (s *Scheduler) Queue(request []byte) ID { // īstenošana return "" }