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