Sobes.tech
Junior — Middle

Ako možno realizovať vykonávanie úloh bez použitia vstavaného plánovača udalostí alebo úloh?

sobes.tech AI

Odpoveď od AI

Ak nemôžete použiť vstavaný plánovač úloh (napríklad cron alebo vstavané časovače), vykonávanie úloh je možné realizovať pomocou goroutine-ov a kanálov v Go.

Napríklad môžete vytvoriť nekonečný cyklus v samostatnej goroutine, ktorá bude čakať určitý čas a spustí úlohu manuálne:

package main

import (
    "fmt"
    "time"
)

func úloha() {
    fmt.Println("Vykonanie úlohy", time.Now())
}

func main() {
    go func() {
        for {
            úloha()
            time.Sleep(1 * time.Hour) // oneskorenie medzi vykonaniami
        }
    }()

    select {} // blokuje main, aby sa program nezastavil
}

Týmto spôsobom môžete sami spravovať rozvrh, bez použitia vstavaných plánovačov.