Sobes.tech
Middle+

4 - accepteer snel inkomende taken, 5 - geef het resultaat van de taak op verzoek terug 6 - als er geen resultaat is, geef de juiste status terug /* Processor - een service die een lange, resource-intensieve operatie uitvoert. Het is al geïmplementeerd De fouten die het teruggeeft, zijn uitsluitend gerelateerd aan onjuiste invoergegevens, stabiel en het opnieuw aanvragen is zinloos */ type Processor interface { Process([]byte) ([]byte, error) } /* We gaan ervan uit dat we een generator van unieke identificaties (bijvoorbeeld UUID) hebben. De generator garandeert dat er geen botsingen zullen zijn */ type ID string // func NewID() ID /* De scheduler accepteert taken van klanten, plaatst ze in de wachtrij en start de verwerking. Zorgt ervoor dat niet meer dan 'threads' methoden van verwerking gelijktijdig worden uitgevoerd Biedt de mogelijkheid om de status van de taak te controleren en het resultaat te krijgen blokkeert zijn openbare methoden voor verwerking niet */ type Scheduler struct { processor Processor } func NewScheduler( prc Processor, threads int, ) *Scheduler { // initialisatie logica return &Scheduler{ processor: prc, } } func (s *Scheduler) Queue(request []byte) ID { // implementatie return "" }