Junior — Middle
Kaip galima įgyvendinti užduočių vykdymą be įmontuoto įvykių ar užduočių planuotojo?
sobes.tech AI
Atsakymas iš AI
Jei neįmanoma naudoti įmontuoto užduočių planuotojo (pavyzdžiui, cron ar įmontuotų laikmačių), užduočių vykdymą galima įgyvendinti naudojant goroutines ir kanalus Go kalboje.
Pavyzdžiui, galite sukurti begalinį ciklą atskiroje goroutine, kuris lauks nustatytą laiką ir rankiniu būdu paleis užduotį:
package main
import (
"fmt"
"time"
)
func užduotis() {
fmt.Println("Užduoties vykdymas", time.Now())
}
func main() {
go func() {
for {
užduotis()
time.Sleep(1 * time.Hour) // vėlavimas tarp vykdymų
}
}()
select {} // blokuoja main, kad programa nesibaigtų
}
Tokiu būdu galite patys valdyti grafiką, nesinaudodami įmontuotais planuotojais.