Sobes.tech
Junior — Middle

Jak można zrealizować wykonywanie zadań bez użycia wbudowanego planera zdarzeń lub zadań?

sobes.tech AI

Odpowiedź od AI

Jeśli nie można używać wbudowanego harmonogramu zadań (np. cron lub wbudowanych timerów), wykonywanie zadań można zrealizować za pomocą gorutyn i kanałów w Go.

Na przykład można utworzyć nieskończoną pętlę w osobnej goroutine, która będzie czekać określony czas i ręcznie uruchamiać zadanie:

package main

import (
    "fmt"
    "time"
)

func zadanie() {
    fmt.Println("Wykonanie zadania", time.Now())
}

func main() {
    go func() {
        for {
            zadanie()
            time.Sleep(1 * time.Hour) // opóźnienie między wykonaniami
        }
    }()

    select {} // blokuje main, aby program się nie zakończył
}

W ten sposób można samodzielnie zarządzać harmonogramem, nie korzystając z wbudowanych planistów.