Sobes.tech
Senior

რას გამოიყენება კონტექსტი? როგორ გამოიყენეთ პრაქტიკაში?

sobes.tech AI

პასუხი AI-სგან

Go ენაში, context გამოიყენება სიგნალების, დროის ზღვართა და სხვა მნიშვნელობების გადაცემისთვის goroutine-ებს შორის, განსაკუთრებით როდესაც მუშაობთ მოთხოვნებთან, დროის ზღვართან და ოპერაციების გაუქმებასთან.

პრაქტიკული გამოყენება:

  • გრძელი ოპერაციების გაუქმება HTTP მოთხოვნის დახურვისას.
  • დროის ზღვარის გადაცემა, რათა ოპერაცია არ გაგრძელდეს მითითებულ დროსზე მეტხანს.
  • მეტადატას გადაცემა (მაგალითად, მოთხოვნის იდენტიფიკატორები) ზარის ჯაჭვის საშუალებით.

გამოყენების მაგალითი:

func handler(ctx context.Context) {
    select {
    case <-time.After(5 * time.Second):
        fmt.Println("ოპერაცია დასრულდა")
    case <-ctx.Done():
        fmt.Println("ოპერაცია გაუქმდა")
    }
}

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

აქ ოპერაცია გაჩერდება 2 წამში, მიუხედავად იმისა, რომ ის 5-სთვის იყო დაგეგმილი.