Junior — Middle
Hogyan valósítható meg feladatok végrehajtása beépített eseménynaptár vagy feladatütemező használata nélkül?
sobes.tech MI
Válasz az MI-től
Ha nem lehet a beépített ütemezőt (például cron vagy beépített időzítőket) használni, akkor a feladatok végrehajtását Go-ban goroutine-kkal és csatornákkal lehet megvalósítani.
Például létrehozhat egy végtelen ciklust egy külön goroutine-ban, amely bizonyos időt vár, majd kézzel indítja a feladatot:
package main
import (
"fmt"
"time"
)
func feladat() {
fmt.Println("Feladat végrehajtása", time.Now())
}
func main() {
go func() {
for {
feladat()
time.Sleep(1 * time.Hour) // késleltetés az végrehajtások között
}
}()
select {} // blokkolja a main-et, hogy a program ne érjen véget
}
Így saját magad kezelheted az ütemezést, anélkül, hogy beépített ütemezőket használnál.