Laravel Horizon
Horizon es un panel de administración para colas basadas en Redis. Ofrece métricas, historial de jobs fallidos, reintentos y supervisión de workers. Requiere el driver redis para las colas.
Instalación:
composer require laravel/horizon
php artisan horizon:install
Esto publica config/horizon.php y añade la ruta del panel (habitualmente /horizon). El panel se protege en producción; configura qué usuarios pueden acceder en HorizonServiceProvider.
Para arrancar los workers con Horizon:
php artisan horizon
Horizon gestiona múltiples workers y procesos según la configuración en config/horizon.php.
Job Batching
El Job Batching permite encolar un conjunto de jobs y ejecutar lógica cuando todo el lote termine o cuando falle algún job. Útil para operaciones masivas (exportaciones, notificaciones en lote).
El resultado del lote determina qué callback se dispara: solo then si todos los jobs del lote terminan bien, pero si alguno falla, entra en juego catch (y el lote se considera fallido en función de tu lógica).
flowchart TD
B[Lote en ejecución]
T{Todos los jobs OK}
THEN[Callback then]
FAIL[Algún job falla]
CATCH[Callback catch]
B --> T
T -->|sí| THEN
T -->|no| FAIL --> CATCH
use Illuminate\Support\Facades\Bus;
use App\Jobs\ProcessItem;
$batch = Bus::batch([
new ProcessItem(1),
new ProcessItem(2),
new ProcessItem(3),
])->then(function (Batch $batch) {
// Se ejecuta cuando todos los jobs terminan correctamente
})->catch(function (Batch $batch, Throwable $e) {
// Se ejecuta si falla algún job
})->dispatch();
Puedes consultar el progreso:
$batch->progress(); // Porcentaje completado
$batch->finished(); // Si ha terminado
Los jobs del batch deben usar el trait Batchable para poder comunicarse con el lote (por ejemplo, cancelar el batch si procede).
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Laravel es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.
Más tutoriales de Laravel
Explora más contenido relacionado con Laravel y continúa aprendiendo con nuestros tutoriales gratuitos.
Aprendizajes de esta lección
Usar Horizon para monitorear colas Redis y Job Batching para procesar lotes de jobs.
Cursos que incluyen esta lección
Esta lección forma parte de los siguientes cursos estructurados con rutas de aprendizaje