Sobes.tech
Junior — Middle

Kā noteikt, vai pašreizējā konteksta izpilde tika pārtraukta vai atcelta?

sobes.tech AI

Atbilde no AI

Go valodā, lai noteiktu, vai pašreizējās konteksta izpilde ir pārtraukta vai atcelta, tiek izmantota Done() metode no objekta context.Context. Šī metode atgriež kanālu, kas tiek slēgts, kad konteksts tiek atcelts. Parasti pārbaudi veic šādi:

select {
case <-ctx.Done():
    // Konteksts ir atcelts vai ir beidzies laika limits
    err := ctx.Err() // context.Canceled vai context.DeadlineExceeded
    // Atcelšanas apstrāde
default:
    // Turpināt darbu
}

Ja ctx.Done() kanāls ir slēgts, tas nozīmē, ka ir jāaptur izpilde.