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.