Gerardo Gutierrez
Jean Nuñez
Buen aporte, gracia me ayudo mucho
Jesebell Maderleyn Escobar Hurtado
Buen aporte me ayudó muchísimo!
Optimiza y monitorea tus colas de trabajo en Laravel con Laravel Horizon: un panel de control claro, balanceo de workers y configuración basada en código con Redis por defecto. Aprende cómo instalarlo en Unix, activarlo con Artisan y observar en tiempo real tus jobs pendientes, completados y fallidos desde su dashboard.
¿Qué es Laravel Horizon y qué resuelve?
Laravel Horizon ofrece un panel de control y un sistema configurable de colas para Laravel. Permite ver el estado de las colas, detectar fallos y mover workers entre colas para evitar cuellos de botella mediante un balance.
¿Cómo se instala y configura en Unix con Redis?
Requiere una extensión disponible en sistemas Unix. Se recomienda usar una máquina virtual (acceso por VSSH) para la instalación. El flujo es directo: instalar el paquete, publicar configuración y ajustar environments en el archivo de configuración.
composer require Laravel Horizon php artisan horizon install
¿Cómo se accede al panel y qué muestra?
Accede a la ruta web “/horizon”. Verás el dashboard y pestañas para monitoreo de colas, métricas y el listado de jobs (pendientes, completados y fallidos).
Para activarlo:
php artisan horizon
Este comando levanta el servicio de Horizon. Es equivalente a lo que antes se ejecutaba con “Q word”.
¿Cómo probar un job y observar resultados en el dashboard?
Crea un job y un comando para dispararlo con rapidez. Dentro del comando, usa el helper dispatch para encolar el job.
php artisan make:job TestJob
php artisan test job
¿Cómo darle más sentido con un flujo tipo newsletter?
El comando puede disparar el job “test job” para enviar newsletters. Se invoca el comando de newsletter con una opción “-S” para que no haga preguntas y envíe directamente el correo.
En conjunto, dominarás: creación de eventos, uso de listeners convertidos en colas de trabajo, ejecución en segundo plano y monitoreo continuo con Laravel Horizon. ¿Qué parte del flujo te gustaría automatizar o visualizar mejor? Comparte tus dudas o tu caso y seguimos la conversación.
Gerardo Gutierrez
Jean Nuñez
Buen aporte, gracia me ayudo mucho
Jesebell Maderleyn Escobar Hurtado
Buen aporte me ayudó muchísimo!
Si estas usando Windows o si simplemente no te corre Horizon puedes usar el paquete tambien oficial Telescope: https://laravel.com/docs/7.x/telescope
Telescope es excelente para monitorear todos los aspectos de nuestra aplicacion, tambien se complementa muy bien con Larvel debuggbar o con Telescope bar.
Sin embargo la utilidad que solo trae HORIZON, es poder configurar desde una archivo de configuración como vas a distribuir tus tareas, realmente la configuración. por defecto de Laravel es muy buena y en algunos contados casos seria necesario usar Horizon para configurar el funcionamiento de los queues, sin embargo cabe resalta que esta es una característica que solo este paquete ofrece.
José Manuel Hernández Antaño
composer require predis/predis
Y tambien la version 4.3 de laravel/horizon
composer require laravel/horizon:4.3
Gonzalo Piñeiro Aleman Urquiza
Activando Laravel Horizon, puede ser que ya no guarde mas registros en la tabla Jobs?
Sergio Ojeda
ProfesorAsi es con Laravel Horizon, el driver se tiene que cambiar a Redis y deja de usar la Base de Datos, ahora los registros justamente se almacenan en Redis.
José Manuel Hernández Antaño
Si es en mac y sale ese error
brew update brew install redis brew services start redis
Juan Guillermo Perez Cardozo
super util laravel horizon, laravel tiene muchas herramientas mas, es un framework muy completo
Jesebell Maderleyn Escobar Hurtado
Por si a alguien le sirve, me salía el siguiente error que dejo en la imagen, lo que hice para solucionar fue correr sudo apt-get install redis-server
George M
En el caso de querer usar database como driver en lugar de redis, es simplemente cambiar redis por database en horizon?
Massimo Di Berardino
Hola @fenderbcn. Casi siempre una migración va a generar un esfuerzo importante, si al migrar no cambia la estructura de datos quizás se te puede hacer un poco más sencillo, pero no creo que sea nunca un paso sencillo
Sergio Ojeda
ProfesorHola @fenderbcn Laravel Horizon no es compatible con el driver de Database unicamente con Redis.
Si quieres usar Database para el manejo de tus colas, hay que remover Laravel Horizon y usar las colas normalmente: https://laravel.com/docs/8.x/queues#introduction
Darwin Gómez Santamaría
tengo una duda, este tema de jobs funciona con bases de datos NoSQL ejemplo mongoDB?
Sergio Ojeda
ProfesorHola, no conozco ningun driver para NoSQL en la actualidad.
Los disponibles son: Redis, Database, AWS, Beanstalkd.
Saludos.
Estiven Ortiz Zuluaga
No se puede establecer una conexión ya que el equipo de destino denegó expresamente dicha conexión. [tcp://127.0.0.1:6379] no puedo acceder a horizon
Jorge Isrrael Diaz Montoya
que tan eficiente son esas colas de laravel ?, y me refiero por la exigencia del poder computacional para sistemas reales, se recomienda usar sqs o las colas de laravel son suficientemente eficiente. Que pasa si realizo procesos pesados a la BD que pueden tardarse hasta 10 min o mas
Jovanny Delgado
Laravel Horizon: Tu Panel de Control para Colas en Laravel
Laravel Horizon es una herramienta poderosa y elegante diseñada específicamente para gestionar las colas de trabajo en aplicaciones Laravel. Si estás familiarizado con las colas en Laravel, sabrás que te permiten diferir tareas que consumen mucho tiempo o que deben ejecutarse en segundo plano, como enviar correos electrónicos, generar informes o procesar pagos.
¿Qué hace especial a Horizon?
¿Para qué sirve Horizon?
Abel da Cunha
Ya voy mirando las clases a modo informativo, como para conocer alguna posibilidad que no conozca con laravel, pero como curso no logré nada... ojalá lo actualicen y mejoren pronto
Josafat Morales Toledo
Your requirements could not be resolved to an installable set of packages.
Problem 1 - Root composer.json requires laravel/horizon ^5.x-dev -> satisfiable by laravel/horizon[5.x-dev]. - laravel/horizon 5.x-dev requires illuminate/contracts ^8.0 -> found illuminate/contracts[v8.0.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
Martin Campos
Redis es una base de datos en memoria, esto quiere decir que es la indicada para los jobs
Jhonathan Alfonso
Hola martin. No necesariamente también pueden almancenar los queue jobs en database (la configuras en .env).
También hay queue workers que nos dan un mejor manejo en el servidor de producción.
Kelly Jesus Salazar Sanchez
Una duda ese panel de Laravel Horizont es publico para cualquier usuario? o hay manera de que solo un usuario pueda usarlo o verlo eje: Admin Mi otra duda es solo es para desarrollo ? No se puede usar en producción que complejidad tendría si se usara en producción?
Cristhian Coaquira
Aca esta la documentacion para la autorizacion de horizon https://laravel.com/docs/8.x/horizon#dashboard-authorization
Tuve el siguiente error, si a alguien le sirve lo solucioné de la siguiente manera
composer require predis/predis
Y cambié las siguientes variables de entorno
REDIS_CLIENT=predis QUEUE_CONNECTION=redis