Senior
Kontext nə üçün istifadə olunur? Praktikada necə istifadə olundu?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, context ləğv siqnalları, vaxt limitləri və digər dəyərləri goroutine'lər arasında ötürmək üçün istifadə olunur, xüsusən sorğular, vaxt aşımı və əməliyyatların ləğvi ilə işləyərkən.
Praktiki tətbiq:
- HTTP sorğusu bağlandıqda uzun müddətli əməliyyatları ləğv etmək.
- Əməliyyatın müəyyən edilmiş vaxtdan çox davam etməməsi üçün vaxt limiti ötürmək.
- Sorğu identifikatorları kimi metadataları çağırış zənciri boyunca ötürmək.
İstifadə nümunəsi:
func handler(ctx context.Context) {
select {
case <-time.After(5 * time.Second):
fmt.Println("Əməliyyat tamamlandı")
case <-ctx.Done():
fmt.Println("Əməliyyat ləğv edildi")
}
}
func main() {
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
handler(ctx)
}
Burada, əməliyyat 2 saniyə sonra dayandırılacaq, hətta 5 saniyəlik planlaşdırılıbsa belə.