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.