Listen: un disparador, varios handlers
Distribuya una sola notificación
Listen: un disparador, varios handlers es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.
Un evento, muchas reacciones
A veces un cambio debe activar varios handlers a la vez. La palabra clave listen permite que muchos handlers se suscriban a un único tema.
Notifique a un tema, no a un nombre
Con listen, el notify de una tarea apunta al nombre lógico de un evento en lugar de al título de un handler específico.
- name: Update certs
ansible.builtin.copy:
src: site.pem
dest: /etc/ssl/site.pem
notify: restart web stackLos handlers se suscriben con listen
Cada handler añade una línea listen con el mismo nombre de tema. Todos los handlers que escuchan ese tema se activan cuando recibe una notificación.
handlers:
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restarted
listen: restart web stackMuchos handlers, un tema
Asigne el mismo valor de listen a varios handlers y una única notificación se distribuirá a todos ellos. Es ideal para reinicios agrupados.
- name: Restart php-fpm
ansible.builtin.service:
name: php-fpm
state: restarted
listen: restart web stackDesacople las tareas de los handlers
La gran ventaja es el desacoplamiento: las tareas hacen referencia a un tema y puede añadir o eliminar handlers sin modificar las tareas que envían las notificaciones.
El nombre sigue siendo opcional, pero útil
Un handler con listen aún puede tener un name, lo que mantiene legible la salida y permite que otras tareas también le envíen notificaciones directamente.
Un handler puede escuchar varios temas
Asigne a listen una lista y un handler responderá a varios temas diferentes. Reaccionará al evento que reciba la notificación.
listen:
- restart web stack
- reload tlsSigue siendo idempotente
Las notificaciones basadas en temas siguen las mismas reglas: los handlers solo se activan con changed y cada uno continúa ejecutándose como máximo una vez por play.
El orden sigue siendo el de definición
Cuando un tema activa varios handlers, estos se ejecutan en el orden en que se definieron en la lista de handlers, igual que los handlers normales.
Común en roles compartidos
Los roles reutilizables usan listen para que quienes los consumen notifiquen a un tema estable, mientras el role puede cambiar libremente su conjunto interno de handlers.
Notify frente a listen
notify es la señal que envía una tarea; listen es la suscripción de un handler. Juntos convierten un evento en muchas acciones. 🔔
Comprobación rápida
Desea que una sola directiva notify reinicie tres servicios a la vez. ¿Qué permite que varios handlers respondan a un solo tema?
Resumen
Con listen, una tarea notifica un tema y se ejecuta cada handler suscrito. Esto desacopla las tareas de los handlers y permite escalar de forma ordenada. 🎯
Preguntas frecuentes
¿La lección «Listen: un disparador, varios handlers» es gratis?
Sí — el texto completo de «Listen: un disparador, varios handlers» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Qué aprenderé en «Listen: un disparador, varios handlers»?
Distribuya una sola notificación Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar DevOps Bootcamp?
No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Listen: un disparador, varios handlers»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?
Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Notificar a un handler cuando haya cambios
- Definir handlers y patrones de reinicio
- Cuándo se ejecutan los handlers y flush_handlers
- Listen: un disparador, varios handlers