Sobes.tech
Junior — Middle

Go uygulamanızda bağlam zaman aşımını nasıl uygularsınız?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, bağlamda zaman aşımı uygulaması için context paketi kullanılır. context.WithTimeout fonksiyonu ile zaman aşımı olan bir bağlam oluşturulur; bu fonksiyon yeni bir bağlam ve iptal fonksiyonu döner.

Örnek:

ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()

select {
case <-time.After(3 * time.Second):
    fmt.Println("işlem tamamlandı")
case <-ctx.Done():
    fmt.Println("zaman aşımı veya bağlam iptali:", ctx.Err())
}

Bu örnekte, eğer işlem 2 saniyeden fazla sürerse, bağlam iptal edilir ve zaman aşımı yönetilebilir. Bu, fonksiyonların, isteklerin çalışma süresini sınırlamak için faydalıdır.