Вопрос: Как использовать `context` в background задачах (cron-like) без утечек?
Go
Middle
Без компании
Вопрос: Как использовать `context` в background задачах (cron-like) без утечек?
Ответы
```go
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
go func() {
t := time.NewTicker(time.Minute)
defer t.Stop()
for {
select {
case <-ctx.Done():
return
case <-t.C:
_ = runJob(ctx)
}
}
}()
```
**Как это работает:** цикл тикера должен уметь выходить по `ctx.Done()`.