Sobes.tech
Senior

Bağlam ne için kullanılır? Pratikte nasıl kullandınız?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, context iptali sinyalleri, zaman aşımı ve diğer değerleri goroutine'ler arasında iletmek için kullanılır, özellikle istekler, zaman aşımı ve işlemlerin iptali ile çalışırken.

Pratik uygulama:

  • HTTP isteği kapatıldığında uzun süren işlemleri iptal etme.
  • Bir işlemin belirlenen süreden uzun sürmemesi için zaman sınırı iletme.
  • Çağrı zinciri boyunca meta verileri (örneğin, istek kimlikleri) iletme.

Kullanım örneği:

func handler(ctx context.Context) {
    select {
    case <-time.After(5 * time.Second):
        fmt.Println("İşlem tamamlandı")
    case <-ctx.Done():
        fmt.Println("İşlem iptal edildi")
    }
}

func main() {
    ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
    defer cancel()
    handler(ctx)
}

Burada, işlem 2 saniye sonra kesilecektir, hatta 5 saniyeye ayarlanmış olsa bile.