⏳Разбираем cron-like решенияИногда в приложениях нужно выполнять задачи по расписанию: чистить кеши, отправлять отчёты или делать бэкапы. В Go есть несколько способов — от стандартных инструментов до сторонних библиотек. Простой вариант — time.AfterFunc() или time.Ticker()time.AfterFunc позволяет выполнить функцию однократно после заданной задержки:time.AfterFunc(3*time.Second, func() { fmt.Println("Executed after 3 seconds") })ticker используется для периодического выполнения задач через определенные интервалы времени:ticker := time.NewTicker(2 * time.Second) defer ticker.Stop() for i := 0; i < 3; i++ { <-ticker.C fmt.Println("Task executed at:", time.Now()) } Сторонние библиотеки robfig/cron и gocronrobfig/cron поддерживает синтаксис crontab для планирования задач:c := cron.New() // Планируем задачу каждые 5 секунд c.AddFunc("*/5 * * * * *", func() { fmt.Println("Cron job executed at:", time.Now()) }) c.Start()gocron предлагает простой API для повторяющихся задач:s := gocron.NewScheduler(time.UTC) s.Every(10).Seconds().Do(func() { fmt.Println("Scheduled task executed at:", time.Now()) }) s.StartAsync() Системный cronВместо того чтобы держать Go-процесс постоянно запущенным, можно использовать системный демон cron для выполнения Go-скриптов.* * * * * /path/to/your-go-programЕсли нужна простая задержка – хватит time.Ticker(). Если расписание сложнее – берём cron или gocron. Разбор всех вариантов — в статьеБиблиотека Go разработчика