¿Quieres crecer profesionalmente? ¿Hasta dónde quieres llegar?
Golang
¿Qué datos almacenaban en Redis y cómo entendían que los anuncios eran populares?
¿Cómo realizaste el despliegue y la configuración del proyecto en proyectos anteriores?
¿Qué problemas de acceso concurrente surgen al llamar a los métodos Get y Set desde diferentes goroutines? ¿Cómo se resuelven?
¿Qué es un índice y qué tipos de índices existen en PostgreSQL?
Te mostraron un servicio y te dijeron que hicieras lo mismo: tus acciones
¿Tienes experiencia trabajando con agentes de IA, sistemas RAG o MCP?
¿Recuerdas en qué versión se habilitó el rango por canal?
Niveles de aislamiento de transacciones en PostgreSQL
¿Cómo te sientes respecto a tareas con requisitos difusos y libertad creativa?
¿Cómo fue la interacción entre equipos durante la integración con otros servicios?
¿Qué opinas de las horas extras?
¿Será necesario un constructor para esta solución?
¿Qué te atrajo de esta oferta de trabajo y por qué dejas tu anterior empleo?
¿Por qué decidiste ingresar al mercado y considerar un nuevo trabajo?
¿Tiene alguna pregunta para mí?
¿Decidiste escribir WaitGroup porque apareció un canal o porque decidiste escribir goroutines para algo?
¿Puede una goroutine escribir directamente en otra goroutine en un canal con búfer?
// 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() }
¿Puedes describir qué usas para leer el canal en la goroutine de los trabajadores?