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.