Sobes.tech
Senior

Kontekst nima uchun ishlatiladi? Amalda qanday ishlatildi?

sobes.tech AI

AIdan javob

Go tilida context bekor qilish signallarini, vaqt chegaralarini va boshqa qiymatlarni goroutine'lar o'rtasida uzatish uchun ishlatiladi, ayniqsa so'rovlar, vaqt chegaralari va operatsiyalarni bekor qilish bilan ishlaganda.

Amaliy qo'llanma:

  • HTTP so'rovini yopishda uzoq davom etadigan operatsiyalarni bekor qilish.
  • Operatsiya belgilangan vaqtdan ortiq davom etmasligi uchun vaqt chegarasini uzatish.
  • So'rov identifikatorlari kabi metadatalarni chaqiriqlar zanjiri orqali uzatish.

Foydalanish misoli:

func handler(ctx context.Context) {
    select {
    case <-time.After(5 * time.Second):
        fmt.Println("Operatsiya yakunlandi")
    case <-ctx.Done():
        fmt.Println("Operatsiya bekor qilindi")
    }
}

func main() {
    ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
    defer cancel()
    handler(ctx)
}

Bu yerda, operatsiya 2 sekund ichida to'xtatiladi, hatto u 5 sekundga mo'ljallangan bo'lsa ham.