Sobes.tech
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 πρέπει να υποστηρίζει το πλαίσιο και να διακόπτει την εργασία της αν ο χρόνος λήξει.