Listen: Én utløser, mange handlere
Send én varsling videre til flere handlere.
Listen: Én utløser, mange handlere er en gratis leksjon i Ansible Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Ansible Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Ansible Academy inneholder totalt 4 leksjoner.
Én hendelse, mange reaksjoner
Noen ganger bør én endring utløse flere handlers samtidig. Nøkkelordet listen lar mange handlers abonnere på ett enkelt emne.
Varsle et emne, ikke et navn
Med listen peker en tasks notify på et logisk hendelsesnavn i stedet for tittelen på én bestemt handler.
- name: Update certs
ansible.builtin.copy:
src: site.pem
dest: /etc/ssl/site.pem
notify: restart web stackHandlers abonnerer med listen
Hver handler legger til en listen-linje som angir det samme emnet. Alle handlers som lytter på emnet, utløses når det varsles.
handlers:
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restarted
listen: restart web stackMange handlers, ett emne
Gi flere handlers samme listen-verdi, så utløser ett enkelt notify dem alle. Dette er utmerket for grupperte omstarter.
- name: Restart php-fpm
ansible.builtin.service:
name: php-fpm
state: restarted
listen: restart web stackKoble tasks fra handlers
Den store fordelen er frikobling: Tasks refererer til et emne, og du kan legge til eller fjerne handlers uten å endre taskene som varsler dem.
Navn er fortsatt valgfritt, men nyttig
En handler med listen kan fortsatt ha et navn. Det gjør resultatet lettere å lese og lar andre tasks også varsle den direkte.
En handler kan lytte på flere emner
Gi listen en liste, så reagerer én handler på flere forskjellige emner. Den reagerer på den hendelsen som blir varslet.
listen:
- restart web stack
- reload tlsFortsatt idempotent
Emnebaserte varsler følger de samme reglene: Handlers utløses bare ved changed, og hver handler kjøres fortsatt høyst én gang per play.
Rekkefølgen er fortsatt definisjonsrekkefølgen
Når et emne vekker flere handlers, kjører de i den rekkefølgen de er definert i handlerlisten, akkurat som vanlige handlers.
Vanlig i delte roller
Gjenbrukbare roller bruker listen slik at brukerne varsler et stabilt emne, mens rollen fritt kan endre sitt interne utvalg av handlers.
notify kontra listen
notify er signalet fra en task, mens listen er abonnementet på en handler. Sammen gjør de én hendelse til mange handlinger. 🔔
Hurtigsjekk
Du vil at én notify skal starte tre tjenester samtidig. Hva gjør at flere handlere kan reagere på ett topic?
Oppsummering
Med listen varsler en oppgave et topic, og alle abonnerte handlere utløses. Dette kobler oppgaver fra handlerne og skalerer på en ryddig måte. 🎯
Lær deg YAML med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Listen: Én utløser, mange handlere» gratis?
Ja – hele teksten i «Listen: Én utløser, mange handlere» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Ansible Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Ansible Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Listen: Én utløser, mange handlere»?
Send én varsling videre til flere handlere. Du øver på Ansible Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Ansible Academy?
Ingen tidligere erfaring er nødvendig. Ansible Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Listen: Én utløser, mange handlere»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Ansible Academy-leksjonen?
Ja. Alle Ansible Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Varsle en handler ved endring
- Definere handlere og mønstre for omstart
- Når handlere kjører og flush_handlers
- Listen: Én utløser, mange handlere