Junior — Middle
Kuidas saab ülesannete täitmist rakendada ilma sisseehitatud sündmuste või ülesannete planeerijata?
sobes.tech AI
Vastus AI-lt
Kui sisseehitatud ülesannete planeerijat (näiteks cron või sisseehitatud taimerid) ei saa kasutada, saab ülesannete täitmist teostada Go-s kasutades goroutine'e ja kanaleid.
Näiteks võib luua eraldi goroutine'is lõpmatu tsükli, mis ootab määratud aega ja käivitab ülesande käsitsi:
package main
import (
"fmt"
"time"
)
func ülesanne() {
fmt.Println("Ülesande täitmine", time.Now())
}
func main() {
go func() {
for {
ülesanne()
time.Sleep(1 * time.Hour) // viivitus täitmise vahel
}
}()
select {} // blokeerib maini, et programm ei lõppeks
}
Sel viisil saate ise ajastust hallata, ilma sisseehitatud planeerijaid kasutamata.