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.