Sobes.tech
Junior — Middle

Kā var īstenot uzdevumu izpildi bez iebūvēta notikumu vai uzdevumu plānotāja?

sobes.tech AI

Atbilde no AI

Ja nevar izmantot iebūvēto uzdevumu plānotāju (piemēram, cron vai iebūvētos taimerus), uzdevumu izpildi var realizēt, izmantojot goroutines un kanālus Go valodā.

Piemēram, var izveidot bezgalīgu ciklu atsevišķā goroutine, kas gaidīs noteiktu laiku un manuāli uzsāks uzdevumu:

package main

import (
    "fmt"
    "time"
)

func uzdevums() {
    fmt.Println("Uzdevuma izpilde", time.Now())
}

func main() {
    go func() {
        for {
            uzdevums()
            time.Sleep(1 * time.Hour) // aizkave starp izpildēm
        }
    }()

    select {} // bloķē main, lai programma nebeigtos
}

Šādā veidā jūs varat pats pārvaldīt grafiku, neizmantojot iebūvētos plānotājus.