Sobes.tech
Junior — Middle

Cum să determiniți dacă execuția contextului actual a fost întreruptă sau anulată?

sobes.tech AI

Răspuns de la AI

În Go, pentru a determina dacă executarea contextului curent a fost întreruptă sau anulată, se folosește metoda Done() a obiectului context.Context. Această metodă returnează un canal care se închide atunci când contextul este anulat. Verificarea se face de obicei astfel:

select {
case <-ctx.Done():
    // Contextul a fost anulat sau timeout-ul a expirat
    err := ctx.Err() // context.Canceled sau context.DeadlineExceeded
    // Tratarea anulării
default:
    // Continuăm munca
}

Prin urmare, dacă canalul ctx.Done() este închis, înseamnă că execuția trebuie să fie întreruptă.