Junior — Middle
როგორ განვახორციელოთ ოპერაციის შესრულების დროის შეზღუდვა `context.WithTimeout`-ის გამოყენებით Go-ში?
sobes.tech AI
პასუხი AI-სგან
Go ენაში ხშირად გამოიყენება კონტექსტი დროის შეზღუდვით context.WithTimeout ფუნქციის მეშვეობით ოპერაციის შესრულების დროის შეზღუდვისთვის. ეს ფუნქცია აბრუნებს ახალ კონტექსტს და გაუქმების ფუნქციას. თუ ოპერაცია დროის გასვლის წინ არ დასრულდა, კონტექსტი ავტომატურად გაუქმდება.
გამოყენების მაგალითი:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case result := <-someLongRunningOperation(ctx):
fmt.Println("ოპერაცია დასრულდა:", result)
case <-ctx.Done():
fmt.Println("დროის ვადა გასულია:", ctx.Err())
}
აქ, someLongRunningOperation უნდა მიიღოს ctx და პერიოდულად შემოწმოს ctx.Done() სწორი შეწყვეტისთვის. ეს საშუალებას აძლევს უსაფრთხოდ შეწყვიტოს ოპერაცია დროის გასვლის შემთხვევაში.