Sobes.tech
Junior — Middle

Jak lze realizovat vykonávání úkolů bez použití vestavěného plánovače událostí nebo úkolů?

sobes.tech AI

Odpověď od AI

Pokud nelze použít vestavěný plánovač úloh (například cron nebo vestavěné časovače), lze vykonávání úloh realizovat pomocí gorutin a kanálů v Go.

Například lze vytvořit nekonečný cyklus v samostatné gorutině, která bude čekat stanovenou dobu a spustí úlohu ručně:

package main

import (
    "fmt"
    "time"
)

func úloha() {
    fmt.Println("Vykonání úlohy", time.Now())
}

func main() {
    go func() {
        for {
            úloha()
            time.Sleep(1 * time.Hour) // zpoždění mezi vykonáními
        }
    }()

    select {} // blokuje main, aby program neskončil
}

Tímto způsobem můžete sami spravovat rozvrh, aniž byste používali vestavěné plánovače.