Sobes.tech
Junior — Middle

Hogyan valósítható meg feladatok végrehajtása beépített eseménynaptár vagy feladatütemező használata nélkül?

sobes.tech MI

Válasz az MI-től

Ha nem lehet a beépített ütemezőt (például cron vagy beépített időzítőket) használni, akkor a feladatok végrehajtását Go-ban goroutine-kkal és csatornákkal lehet megvalósítani.

Például létrehozhat egy végtelen ciklust egy külön goroutine-ban, amely bizonyos időt vár, majd kézzel indítja a feladatot:

package main

import (
    "fmt"
    "time"
)

func feladat() {
    fmt.Println("Feladat végrehajtása", time.Now())
}

func main() {
    go func() {
        for {
            feladat()
            time.Sleep(1 * time.Hour) // késleltetés az végrehajtások között
        }
    }()

    select {} // blokkolja a main-et, hogy a program ne érjen véget
}

Így saját magad kezelheted az ütemezést, anélkül, hogy beépített ütemezőket használnál.