4 - gyorsan fogadja a bejövő feladatokat,
5 - kérésre visszaadja a feladat eredményét
6 - ha nincs eredmény, visszaadja a megfelelő státuszt
/*
Processzor - egy szolgáltatás, amely hosszú ideig tartó, erőforrás-igényes műveletet végez. Már megvalósított
A visszaküldött hibák kizárólag helytelen bemeneti adatokkal kapcsolatosak, stabilak, és az újra kérés értelmetlen
*/
type Processor interface {
Process([]byte) ([]byte, error)
}
/*
Feltételezzük, hogy van egy egyedi azonosítók (pl. UUID) generátorunk.
A generátor garantálja, hogy nem lesz ütközés
*/
type ID string
// func NewID() ID
/*
A ütemező fogadja a feladatokat az ügyfelektől, sorba állítja őket, és elindítja a feldolgozást.
Biztosítja, hogy egyszerre legfeljebb 'threads' feldolgozási módszer fusson
Lehetővé teszi a feladat státuszának ellenőrzését és az eredmény megszerzését
nem blokkolja a nyilvános feldolgozó módszereit
*/
type Scheduler struct {
processor Processor
}
func NewScheduler(
prc Processor,
threads int,
) *Scheduler {
// inicializációs logika
return &Scheduler{
processor: prc,
}
}
func (s *Scheduler) Queue(request []byte) ID {
// megvalósítás
return ""
}