Golang
Kas GIN indeks sobib täisteksti otsinguks?
Kuidas arvutati RPS — kas te lihtsalt liitsite kõigi käepidemete koormuse või kuidas?
Kuidas salvestatakse pilt PostgreSQL-is — kas see on mingi kodeering või arvude kogum? Kuidas salvestada pilt tekstina?
Kas Kafka garanteerib sõnumite kohaletoimetamise? Kas Kafka võib kaotada sõnumi, kui tootja ei saa viga?
Kuidas te lahendate probleemi, kui teenus tagastab vea 500?
Mida juhtub 5 tarbija ja 3 jaotisega?
Selgitage Kuberneteses oleva pordi elutsüklit. Mis on liveness ja readiness proovid?
Miks ajalooliselt olid kõige populaarsemad CISC-protsessorid (x86), ja RISC hakkab populaarsust koguma ainult nüüd?
Kuidas määrate requests ja limits väärtused Kubernetes?
Kuidas tagada dubleerimise puudumine masina vahetamisel (üks halveneb, teine võtab üle)?
Räägi üldiselt projektist — mis see oli lõppkasutajale?
Kuidas täpselt saatsite Kafka kliendi projekti, kuidas seda kasutasite?
Mis vahe on protsessil, lõngal ja gorutinil?
// Küsimus 1. Mida ekraanil näidatakse? package main import "fmt" func main() { s := "Hello world" s[0] = "h" fmt.Println(s) }
Mida sa teed, millise meeskonnaga sul on?
Kuidas kasutada EXPLAIN ja EXPLAIN ANALYZE, et analüüsida päringute jõudlust ja millele tähelepanu pöörata päringukava juures?
Kuidas te kogusite metrikat ja jälgite?
Kas kaart edastatakse funktsioonile viitega Go-s?
/** * Ühenda N kanalit üheks * * On antud n kanalit tüüpi chan int. Tuleb kirjutada funktsioon, mis ühendab kõik andmed **/ // 1. Vajalik on rakendada funktsioon, mis ühendab N kanalit üheks func joinChannels(chs ...<-chan int) <-chan int { mergedCh := make(chan int) // ... return mergedCh } // 2. Täitke kanalid a, b, c väärtustega // ...
func (p *Pool) Stop() { p.mu.Unlock() // Tagad ir droši aizvērt kanālu close(p.tasks) // signāls darbiniekiem: jaunu uzdevumu nebūs, lasiet pārējo p.wg.Wait() // gaidām, līdz visas goroutines pabeigsies p.cancel() // gadījumā atceļam kontekstu fmt.Println("Pool apturēts.") } // ForceStop piespiedu kārtā aptur visus darbiniekus, nesagaidot uzdevumu pabeigšanu. // Darbinieki tiks nekavējoties pārtraukti caur kontekstu. func (p *Pool) ForceStop(timeout time.Duration) { fmt.Printf("Piesaistes apturēšana (laika limits: %v)...\n", timeout) // Bloķē jaunu uzdevumu pievienošanu p.mu.Lock() p.isOpen = false p.mu.Unlock() // Aizver kanālu, lai darbinieki neņemtu jaunus uzdevumus close(p.tasks) // Atceļ kontekstu – tas pārtrauks visus pašreizējos uzdevumus p.cancel() // Dod ierobežotu laiku pabeigšanai done := make(chan struct{}) go func() { p.wg.Wait() close(done) }() select { case <-done: fmt.Println("Pool piespiedu kārtā apturēts (visi darbinieki pabeiguši)") case <-time.After(timeout): fmt.Println("Pool piespiedu kārtā apturēts (laika limits, var palikt pakarēju goroutine)") } }