Junior — Middle
Go dilində context.WithTimeout istifadə edərək əməliyyatın icra vaxtını necə məhdudlaşdırmaq olar?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, bir əməliyyatın icra vaxtını məhdudlaşdırmaq üçün tez-tez context.WithTimeout funksiyası ilə kontekst istifadə olunur. Bu, yeni bir kontekst və ləğv etmə funksiyası qaytarır. Əgər əməliyyat vaxt limitindən əvvəl tamamlanmazsa, kontekst avtomatik olaraq ləğv edilir.
İstifadə nümunəsi:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case result := <-someLongRunningOperation(ctx):
fmt.Println("Əməliyyat tamamlandı:", result)
case <-ctx.Done():
fmt.Println("Vaxt aşımı:", ctx.Err())
}
Burada, someLongRunningOperation ctx qəbul etməli və düzgün şəkildə ləğv etmək üçün ctx.Done()-u mütəmadi yoxlamalıdır. Bu, vaxt aşımında əməliyyatı təhlükəsiz şəkildə ləğv etməyə imkan verir.