Sobes.tech

Golang

¿Decidiste escribir WaitGroup porque apareció un canal o porque decidiste escribir goroutines para algo?

Senior
166

¿Qué dice la convención de Go sobre el uso de WaitGroup y los tipos devueltos (aceptando interfaces, devolviendo tipos concretos)?

Senior
164

// El cliente pasa un objeto (Task) con datos para realizar la tarea, // en nuestro ejemplo usaremos una estructura vacía. // // El manejador puede procesar no más de N tareas simultáneamente, // y no más de X tareas pueden estar en cola para su procesamiento. // Si no hay espacio en la cola, se devuelve un error al cliente de inmediato. // // La tarea se procesa si hay procesadores libres disponibles. // Simulamos la duración del procesamiento con time.Sleep(5*time.Second). // Tan pronto como una tarea termina, tomamos la siguiente de la cola. // Si la cola está vacía, esperamos nuevas tareas de los clientes. // // Con un asterisco: ampliar la estructura Task y obtener los estados de las tareas mediante una consulta separada. package scheduler type Scheduler interface { AddTask(t Task) error Close() } type scheduler struct { queue chan Task wg sync.WaitGroup } func New(workers, queue int) Scheduler { // implementación pendiente } type Task interface { Do() }

Senior
164

¿Qué tecnología/herramienta utilizas?

Senior
164

¿Qué tipos de índices en PostgreSQL, además de B-tree, has utilizado?

Senior
163

¿Cómo podríamos manejar externamente los errores que ocurren en las tareas si quisiéramos hacerlo?

Senior
161

¿Cuál fue tu papel en la toma de decisiones arquitectónicas durante el desarrollo del servicio de búsqueda?

Senior
161

¿Has utilizado CTE? Cuéntame qué es.

Senior
160

¿Has utilizado contextos en la práctica? Cuéntame.

Senior
158

func New(workers, queue, int) Scheduler { s := &scheduler { queue := make(chan Task, queue) for i := 0; i < workers; i++ { wg.Add(1) go func() { defer wg.Done() for task := range s.queue { task.Do() } }() } } return s } func (s *scheduler) Close() { close(s.queue) s.wg.Wait() } type Task interface { Do() }

Senior
157

¿Se puede crear un índice solo en la réplica, pero no en el maestro?

Senior
156

¿Todavía hay carreras de datos en la implementación? ¿Específicamente en el método Keys, que devuelve una rebanada de claves?

Senior
156

¿Quieres escribir un pool de trabajadores clásico?

Senior
154

¿En qué se diferencia SELECT FOR UPDATE de SELECT FOR SHARE?

Senior
153

Tipos de replicación en PostgreSQL

Senior
152

¿Usaste funciones de ventana?

Senior
150

¿El trabajo solo está permitido dentro del territorio de la Federación Rusa?

Senior
150

¿Tiene experiencia en escribir operadores de Kubernetes, administrar operadores, Helm Chart?

Senior
149

¿Por qué no usaron Redis en lugar de almacenarlo en la base de datos?

Senior
148

¿Qué documentos se almacenaban en ELK?

Senior
146
/7