Laravel Horizon y Job Batching

Avanzado
Laravel
Laravel
Actualizado: 18/04/2026

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 - Autor del tutorial

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