Sobes.tech
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 վայրկյան, կոնտեքստը չեղարկվում է և ժամանակային սահմանափակումը կարող է կառավարվել։ Սա օգտակար է ֆունկցիաների, հարցումների և այլնի կատարման ժամանակը սահմանափակելու համար։