Junior — Middle
Можеш ли да наведеш ситуације или случајеве у којима се користи концепт контекста?
sobes.tech АИ
Одговор од АИ
У Go, концепт контекста (context.Context) се користи за управљање временом живота операција, отказивањем, временским ограничењима и преносом вредности између горутиних.
Главни случајеви употребе:
- Отказивање операција: на пример, при раду са мрежним захтевима или базама података, може се отказати дуга операција ако клијент прекине захтев.
- Временска ограничења и timeout-ови: може се поставити максимално време за извршавање операције, након чега ће се она аутоматски отказати.
- Пренос вредности: на пример, идентификатори захтева, токени аутентификације, метаподаци који су потребни на различитим нивоима позива.
Пример:
func HandleRequest(ctx context.Context) {
select {
case <-time.After(5 * time.Second):
// Извршити рад
case <-ctx.Done():
// Операција је отказана или је истекао временски лимит
return
}
}
Контекст помаже у писању управљивог и одзивног кода, посебно у апликацијама са више нитова и мрежним апликацијама.