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-სთვის იყო დაგეგმილი.