Cola de tareas distribuida para Python que ejecuta trabajos en segundo plano y programa tareas entre workers y brokers de mensajes.
hibiken/asynq
Biblioteca de Go para colas de tareas distribuidas con Redis, con programación, reintentos, colas prioritarias y una interfaz web.
- Estrellas
- 13,784
- Forks
- 991
- Issues abiertos
- 293
- Último commit
- hace 3 días
¿Qué es?
Asynq es una biblioteca de Go para poner tareas en colas y procesarlas de forma asíncrona mediante goroutines de worker. Los clientes encolan tareas en Redis y uno o varios servidores worker las extraen y ejecutan de forma concurrente, lo que permite distribuir el trabajo entre varias máquinas.
La biblioteca cubre necesidades habituales de los trabajos en segundo plano: tareas programadas y periódicas, reintentos de tareas fallidas, recuperación de tareas tras la caída de un worker, colas con prioridades ponderadas y estrictas, deduplicación mediante una opción de unicidad, tiempos de espera y plazos por tarea, y agrupación de tareas en lotes. Los handlers pueden ser funciones simples o tipos que implementen una interfaz, y se admite middleware.
Las herramientas de operaciones incluyen métricas de Prometheus, compatibilidad con Redis Sentinel para alta disponibilidad, una interfaz web independiente llamada Asynqmon para inspeccionar y controlar colas y tareas, y una herramienta de línea de comandos llamada asynq. Se requiere Redis 4.0 o superior, y es posible que algunos scripts de Lua no funcionen con Redis Cluster.
Funciones clave
- 01Ejecución programada, periódica y diferida de tareas
- 02Reintentos automáticos y recuperación de tareas tras caídas de workers
- 03Colas con prioridades ponderadas y estrictas
- 04Deduplicación de tareas, tiempos de espera y plazos
- 05Agrupación de tareas para procesar en lotes operaciones sucesivas
- 06Métricas de Prometheus, compatibilidad con Redis Sentinel, interfaz web y CLI
Casos de uso
- Enviar correos electrónicos o notificaciones en segundo plano sin bloquear las solicitudes HTTP
- Cambiar el tamaño de imágenes o procesar archivos subidos en máquinas worker independientes
- Ejecutar tareas periódicas, como limpieza o generación de informes, en un servicio de Go
- Distribuir cargas de trabajo pesadas entre varios servidores usando Redis como broker
Inicio rápido
- 1
Instala Go y asegúrate de que haya un servidor Redis (versión 4.0 o superior) en ejecución
- 2
Instala la biblioteca Asynq en tu módulo de Go
go get -u github.com/hibiken/asynq - 3
Escribe un paquete de tareas; después, encola las tareas con un Client y procésalas con un Server
Antes de usarlo
- Requiere un servidor Redis (versión 4.0 o superior) para almacenar y mover tareas.
- Aún está en la versión v0.x, por lo que la API pública puede cambiar sin un incremento de la versión principal antes de la v1.0.0.
- Es posible que algunos scripts de Lua no sean compatibles con Redis Cluster.
Temas
Preguntas frecuentes
- ¿Qué es asynq?
- Biblioteca de Go para colas de tareas distribuidas con Redis, con programación, reintentos, colas prioritarias y una interfaz web. Asynq es una biblioteca de Go para poner tareas en colas y procesarlas de forma asíncrona mediante goroutines de worker. Los clientes encolan tareas en Redis y uno o varios servidores worker las extraen y ejecutan de forma concurrente, lo que permite distribuir el trabajo entre varias máquinas.
- ¿asynq es gratuito? ¿Qué licencia tiene?
- asynq es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿asynq sigue mantenido?
- Mantenimiento activo. El último commit de asynq fue el 19 oct 2026.
- ¿Para qué puedo usar asynq?
- Enviar correos electrónicos o notificaciones en segundo plano sin bloquear las solicitudes HTTP Cambiar el tamaño de imágenes o procesar archivos subidos en máquinas worker independientes Ejecutar tareas periódicas, como limpieza o generación de informes, en un servicio de Go Distribuir cargas de trabajo pesadas entre varios servidores usando Redis como broker
- ¿Cómo se instala asynq?
- Instala Go y asegúrate de que haya un servidor Redis (versión 4.0 o superior) en ejecución Instala la biblioteca Asynq en tu módulo de Go: go get -u github.com/hibiken/asynq Escribe un paquete de tareas; después, encola las tareas con un Client y procésalas con un Server
- ¿Dónde consigo asynq?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/hibiken/asynq
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Motor de orquestación para tareas en segundo plano, agentes de IA y workflows durables, con SDK para Python, TypeScript, Go y Ruby, y Postgres como capa de durabilidad.
Motor de workflows durables para ejecutar funciones por pasos, tareas en segundo plano y workflows de IA en serverless, servidores o edge, con reintentos y control de flujo.
Temporal es una plataforma de ejecución durable cuyo servidor ejecuta Workflows de aplicaciones y reintenta automáticamente los pasos que fallan.
Servicios de backend y bibliotecas en Rust que impulsan la plataforma de chat Stoat, incluidos su API REST, servidor de eventos WebSocket y servidor de archivos.
Backend genérico de código abierto en TypeScript que incluye notificaciones en tiempo real, almacenamiento de datos con búsqueda avanzada y gestión de usuarios.