Sobes.tech
Junior — Middle

Konsepsiya kontekstinin istifadə olunduğu vəziyyətlər və ya halları göstərə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da, kontekst (context.Context) anlayışı əməliyyatların həyat dövrünü idarə etmək, ləğv etmək, vaxt limitləri və gorutinalar arasında dəyərlərin ötürülməsi üçün istifadə olunur.

Əsas istifadə halları:

  • Əməliyyatların ləğvi: məsələn, şəbəkə sorğuları və ya verilənlər bazası ilə işləyərkən, müştəri sorğunu dayandırarsa, uzunmüddətli əməliyyatı ləğv etmək olar.
  • Vaxt limitləri və zaman aşımı: əməliyyatın maksimum icra vaxtını təyin etmək və bu vaxt keçdikdə avtomatik ləğv etmək.
  • Dəyərlərin ötürülməsi: məsələn, sorğu identifikatorları, autentifikasiya tokenləri, müxtəlif çağrı səviyyələrində lazım olan metadatalar.

Nümunə:

func HandleRequest(ctx context.Context) {
    select {
    case <-time.After(5 * time.Second):
        // İşləri yerinə yetir
    case <-ctx.Done():
        // Əməliyyat ləğv edildi və ya vaxt limiti keçdi
        return
    }
}

Kontekst daha idarə olunan və cavabdeh kod yazmağa kömək edir, xüsusən çoxmərhələli və şəbəkə əsaslı tətbiqlərdə.