Sobes.tech
Junior — Middle

Hogyan lehet meghatározni, hogy a jelenlegi kontextus végrehajtását megszakították vagy törölték?

sobes.tech MI

Válasz az MI-től

Go-ban a jelenlegi kontextus végrehajtásának megszakítását vagy törlését a context.Context objektum Done() metódusával határozzuk meg. Ez a metódus egy csatornát ad vissza, amely akkor záródik be, amikor a kontextus törlésre kerül. Általában így ellenőrizzük:

select {
case <-ctx.Done():
    // A kontextus törölve lett vagy lejárt a határideje
    err := ctx.Err() // context.Canceled vagy context.DeadlineExceeded
    // Törlés kezelése
default:
    // Folytatjuk a munkát
}

Tehát, ha a ctx.Done() csatorna zárva van, az azt jelenti, hogy a végrehajtást meg kell szakítani.