Listen: un trigger, molti handler
Propaghi una singola notifica
Listen: un trigger, molti handler è una lezione Ansible Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ansible Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ansible Academy include 4 lezioni in totale.
Un evento, molte reazioni
A volte una singola modifica dovrebbe attivare contemporaneamente diversi handler. La parola chiave listen consente a molti handler di sottoscrivere un unico topic.
Notificare un topic, non un nome
Con listen, il notify di un task fa riferimento al nome di un evento logico invece che al titolo di uno specifico handler.
- name: Update certs
ansible.builtin.copy:
src: site.pem
dest: /etc/ssl/site.pem
notify: restart web stackGli handler si sottoscrivono con listen
Ogni handler aggiunge una riga listen con lo stesso nome del topic. Ogni handler in ascolto su quel topic viene attivato quando riceve la notifica.
handlers:
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restarted
listen: restart web stackMolti handler, un topic
Assegni a diversi handler lo stesso valore di listen e una singola notifica verrà inoltrata a tutti. È ideale per i riavvii raggruppati.
- name: Restart php-fpm
ansible.builtin.service:
name: php-fpm
state: restarted
listen: restart web stackDisaccoppiare task e handler
Il vantaggio principale è il disaccoppiamento: i task fanno riferimento a un topic e Lei può aggiungere o rimuovere handler senza modificare i task che inviano le notifiche.
Il nome resta facoltativo, ma utile
Un handler con listen può avere comunque un name, che mantiene leggibile l'output e consente anche ad altri task di notificarlo direttamente.
Un handler può ascoltare più topic
Assegni a listen una lista e un singolo handler risponderà a diversi topic. Reagirà all'evento che riceverà la notifica.
listen:
- restart web stack
- reload tlsResta idempotente
Le notifiche basate sui topic seguono le stesse regole: gli handler vengono attivati solo su changed e ciascuno viene comunque eseguito al massimo una volta per play.
L'ordine resta quello di definizione
Quando un topic attiva diversi handler, questi vengono eseguiti nell'ordine in cui sono definiti nell'elenco degli handler, proprio come gli handler normali.
Comune nei ruoli condivisi
I ruoli riutilizzabili usano listen affinché chi li utilizza notifichi un topic stabile, mentre il ruolo può modificare liberamente l'insieme dei propri handler interni.
notify e listen
notify è il segnale inviato da un task; listen è la sottoscrizione di un handler. Insieme trasformano un evento in molte azioni. 🔔
Controllo rapido
Desidera che un solo notify riavvii tre servizi contemporaneamente. Che cosa consente a più handler di rispondere a un unico topic?
Riepilogo
Con listen, un task invia una notifica a un topic e ogni handler sottoscritto viene eseguito. Questo disaccoppia i task dagli handler e consente di scalare in modo ordinato. 🎯
Impara YAML con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Listen: un trigger, molti handler» è gratuita?
Sì — il testo completo di «Listen: un trigger, molti handler» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ansible Academy, passa a CoddyKit PRO. Il corso Ansible Academy include 4 lezioni in totale.
Cosa imparerò in «Listen: un trigger, molti handler»?
Propaghi una singola notifica Eserciti Ansible Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Ansible Academy?
Non è richiesta alcuna esperienza precedente. Ansible Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Listen: un trigger, molti handler»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Ansible Academy?
Sì. Ogni lezione Ansible Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Notificare un handler in caso di modifica
- Definire gli handler e i modelli di riavvio
- Quando vengono eseguiti gli handler e flush_handlers
- Listen: un trigger, molti handler