Sobes.tech
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.