Construye una cola de trabajos que escale limpiamente
Hay una cola de trabajos en la base de datos — la tabla jobs con estado pending para las filas no ejecutadas. Cinco trabajadores la miran de forma concurrente: cada uno quiere coger el trabajo más antiguo y marcarlo como "en progreso". Un bloqueo de fila normal con un límite hace que los cinco trabajadores se amontonen sobre la misma fila y se serialicen. La cura es saltarse las filas que ya están bloqueadas y coger la siguiente libre: cada trabajador obtiene su propio trabajo y el paralelismo funciona sin colisiones.
jobs(id SERIAL, status, payload) contiene cuatro filas pending (a, b, c, d). Coge un trabajo pending de jobs con el id más pequeño, cámbialo a running — los otros tres se quedan en pending.
Inicia sesión para ver tu historial de envíos
Iniciar sesiónInicia sesión para usar el AI Mentor
Iniciar sesión