Junior — Middle
Ինչպես իրականացնել կոնտեքստի ժամանակային սահմանափակում ձեր Go հավելվածում?
sobes.tech AI
Պատասխան AI-ից
Go լեզվում, կոնտեքստի ժամանակային սահմանափակումը իրականացնելիս օգտագործվում է context փաթեթը։ Ժամանակային սահմանափակությամբ կոնտեքստ ստեղծելու համար օգտագործվում է context.WithTimeout ֆունկցիան, որը վերադարձնում է նոր կոնտեքստ և չեղարկման ֆունկցիա։
Օրինակ՝
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case <-time.After(3 * time.Second):
fmt.Println("գործողությունը ավարտվեց")
case <-ctx.Done():
fmt.Println("ժամանակային սահմանափակ կամ կոնտեքստի չեղարկում:", ctx.Err())
}
Այս օրինակով, եթե գործողությունը տևում է ավելի քան 2 վայրկյան, կոնտեքստը չեղարկվում է և ժամանակային սահմանափակումը կարող է կառավարվել։ Սա օգտակար է ֆունկցիաների, հարցումների և այլնի կատարման ժամանակը սահմանափակելու համար։