Junior — Middle
Έχετε χρησιμοποιήσει τη μέθοδο Context.WithTimeout για τον περιορισμό του χρόνου εκτέλεσης των λειτουργιών;
sobes.tech AI
Απάντηση από AI
Ναι, η μέθοδος context.WithTimeout στη Go χρησιμοποιείται συχνά για τον περιορισμό του χρόνου εκτέλεσης των λειτουργιών, ειδικά όταν εργάζεστε με αιτήματα δικτύου, βάσεις δεδομένων ή άλλες μακροχρόνιες διαδικασίες.
Δημιουργεί ένα νέο πλαίσιο που ακυρώνεται αυτόματα μετά το καθορισμένο χρονικό διάστημα, βοηθώντας στην αποφυγή παγώματος και στον έλεγχο των χρονικών ορίων.
Παράδειγμα χρήσης:
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 πρέπει να υποστηρίζει το πλαίσιο και να διακόπτει την εργασία της αν ο χρόνος λήξει.