Junior — Middle
Օգտագործե՞լ եք Context.WithTimeout մեթոդը գործողությունների կատարման ժամանակը սահմանափակելու համար։
sobes.tech AI
Պատասխան AI-ից
Այո, Go լեզվում context.WithTimeout մեթոդը հաճախ օգտագործվում է գործողությունների կատարման ժամանակի սահմանափակման համար, հատկապես երբ աշխատում եք ցանցային հարցումների, տվյալների բազաների կամ այլ երկարատև գործընթացների հետ:
Նա ստեղծում է նոր կոնտեքստ, որը ավտոմատ կերպով չեղարկվում է նշված ժամանակի ավարտից հետո, ինչը օգնում է խուսափել կախվածություններից և վերահսկել ժամանակային սահմանափակումները:
Օգտագործման օրինակ:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
err := doSomething(ctx)
if err != nil {
if errors.Is(err, context.DeadlineExceeded) {
fmt.Println("Գործողությունը գերազանցեց սպասման ժամանակը")
} else {
fmt.Println("Կատարման սխալ:", err)
}
}
Այս օրինակով, doSomething ֆունկցիան պետք է աջակցի կոնտեքստին և ընդհատի իր աշխատանքը, եթե ժամանակը լրացնի։