Sobes.tech
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ə.