ძირითადი პაკეტი func main() { c := make(chan int, 1) 3 ჯერ ციკლი { არჩევანი { დეფოლტი: println(1) შემთხვევა <-c: println(2) შემთხვევა c <- 1: println(3) } } }
Golang
```go func fail() { panic("წარუმატებლობა!") } func main() { fmt.Println("დაწყება!") var wg sync.WaitGroup wg.Add(1) go func() { defer func() { if e := recover(); e != nil { fmt.Println(e) } }() fail() wg.Done() }() wg.Wait() fmt.Println("დასრულება!") } ```
რატომ აირჩიეთ Elasticsearch? რა ვარიანტები იყო? რამე აირჩიეთ თუ უბრალოდ ELK უკვე იყო?
პროექტების ან სამუშაო პირობების შესახებ გაქვთ კითხვები?
რა კავშირი აქვს სერვისებს, თუ ჩვენ ვსაუბრობთ გაუძლებლობაზე და შევამცირეთ ამას რეპლიკებად?
დასკვნით, რომელი გადაწყვეტილებები აირჩიეთ? ClickHouse, ELK და რა კიდევ?
რა ტექნოლოგიებს იყენებენ პროექტებში?
func fetch(ctx context.Context, u User) (string, error) { // რაღაც რაღაც ქსელში time.Sleep(time.Millisecond * 10) // დაგვიანების იმიტაცია return u.Name, nil //return "", errors.New("რამე შეცდომა") } func Do(ctx context.Context, users []User) (map[string]int64, error) { var mu sync.Mutex var wg sync.WaitGroup ch := make(chan error, len(users)) names := make(map[string]int64, 0) ctxWithCancel, cancel := context.WithCancel(ctx) wg.Add(len(users)) for _, u := range users { go func() { defer wg.Done() select { case name, err := fetch(ctx, u): if err != nil { ch <- err return } mu.Lock() names[name] = names[name] + 1 mu.Unlock() case <-ctxWithCancel.Err: } }() }
მთავარი პაკეტი იმპორტი ( "fmt" ) ფუნქცია main() { c := make(chan string, 1) go fmt.Println(<-c) c <- "სალამი მსოფლიო!" fmt.Println("გამოსვლა!") } ფატალური შეცდომა: ყველა goroutine სძინავს - deadlock! goroutine 1 [კანალის მიღება]: main.main() /tmp/sandbox[phone]/prog.go:10 +0x3a პროგრამა დასრულდა: სტატუსი 2.
თქვი რომ Elasticsearch-ით შექმენი რამე სწრაფი ტრანზაქციების ძებნისთვის. რა არის ეს, რამდენი ტრანზაქციაა და რა სარგებელი აქვს?
Elasticsearch-ის დანერგვის შემდეგ მომხმარებლების ან ტექნიკური მხარდაჭერისგან რაიმე პროდუქტის უკუკავშირი იყო?
სად მუშაობთ ახლა?
რა ქმნის სისტემას მაღალი დატვირთვით? თქვენი ექსპერტიზის საფუძველზე.
სად ცხოვრობთ ახლა?
გაქვთ სამხედრო ბილეთი?
ძირითადი პაკეტი იმპორტი ( "fmt" ) ფუნქცია მთავარი() { c := make(chan string) გაიმართოს fmt.Println(<-c) c <- "Hello World!" fmt.Println("გამოსვლა!") }
რამდენი თანხიდან განიხილავთ შეთავაზებას?
ძირითადი პაკეტი func main() { c := make(chan int) 3 ციკლისთვის { select { ნაგულისხმევი: println(1) შემთხვევა <-c: println(2) შემთხვევა c <- 1: println(3) } } }
func Do(ctx context.Context, users []User) (map[string]int64, error) { var mu sync.Mutex var wg sync.WaitGroup ch := make(chan error, len(users)) names := make(map[string]int64, 0) ctxWithCancel, cancel := context.WithCancel(ctx) wg.Add(len(users)) for _, u := range users { go func() { defer wg.Done() select { case name, err := fetch(ctx, u): if err != nil { ch <- err return } mu.Lock() names[name] = names[name] + 1 mu.Unlock() case <-ctxWithCancel.Err: } }() } return names, nil }
ძირითადი პაკეტი იმპორტი ( "fmt" ) ფუნქცია main() { c := make(chan string) go fmt.Println(<-c) c <- "სალამი მსოფლიო!" fmt.Println("გამოსვლა!") } ფატალური შეცდომა: ყველა goroutine მძინარეა - deadlock! goroutine 1 [კანალის მიღება]: main.main() /tmp/sandbox[phone]/prog.go:10 +0x3a პროგრამა დასრულდა: სტატუსი 2.