Golang
¿Puedes contarme sobre el patrón Semaphore?
¿Qué son los canales en Go y cuáles son sus tipos?
¿Usted mismo supervisa el monitoreo o tiene un equipo separado?
¿Por qué el enfoque de Go para la concurrencia es mejor que en otros lenguajes?
Cuéntenos sobre su experiencia trabajando con sistemas de alta carga. ¿Ha tenido que resolver tareas relacionadas con la distribución y el balanceo del tráfico?
Si la operación dura entre 10 y 12 minutos y hay una grabación activa y los datos cambian, ¿no hubo efectos secundarios?
¿Cuál es la complejidad del algoritmo en tiempo y memoria?
Cuéntenos sobre los niveles de aislamiento de transacciones: Read Uncommitted, Read Committed, Repeatable Read, Serializable.
¿Alguna vez ha tenido que abordar tareas de arquitectura? ¿Cómo se tomaron las decisiones arquitectónicas?
[nombre] preguntó: cuéntame sobre los primitivas de sincronización en GoLang.
Ahora queremos ir a HeadHunter y buscar candidatos por filtros — ¿cómo arquitecturarlo?
¿De dónde provenían los datos? ¿Los enviaban los logistas o cómo?
¿Qué se puede hacer para evitar la evacuación del mapa en un servicio de alta carga?
¿Qué es el Load Average, cómo verificarlo y en qué aspectos prestar atención?
¿Se eliminan los datos del contenedor después de detenerlo?
func (c *Client) Send(ctx context.Context, messages []Message, maxWorkers int) error { sem := make(chan struct{}, maxWorkers) var wg sync.WaitGroup var resultErr error var once sync.Once for _, msg := range messages { wg.Add(1) go func(msg Message) { defer wg.Done() sem <- struct{}{} defer func() { <-sem }() body, err := json.Marshal(msg) if err != nil { once.Do(func() { resultErr = err; cancel() }) return } req, _ := http.NewRequestWithContext( ctx, http.MethodPost, c.url, bytes.NewReader(body), ) req.Header.Set("Content-Type", "application/json") resp, err := c.httpClient.Do(req) if err != nil { once.Do(func() { resultErr = err; cancel()}) return } defer resp.Body.Close() if resp.StatusCode >= 500 { once.Do(func() { resultErr = fmt.Errorf("server error") cancel()}) return } c.sentCount.Add(1) time.Sleep(time.Second) }(msg) } wg.Wait() }
¿Para qué tareas utilizó goroutines y canales?
¿Cómo influiste en el cambio del proceso con análisis?
¿Cómo está estructurada técnicamente en general la plataforma de recursos humanos?
¿Cómo manejaste la situación cuando las cuentas en las transferencias caían en diferentes shards?