Når handlere kjører og flush_handlers
Styr tidspunktet for handlere ved slutten av en play.
Når handlere kjører og flush_handlers er en gratis leksjon i Ansible Academy på CoddyKit. Dette er leksjon 3 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.
Handlers kjører på slutten
Som standard kjøres alle varslede handlers én gang, helt på slutten av playen, etter at alle tasks er ferdige. Ikke i det øyeblikket de ble varslet.
Hvorfor utsette dem
Ved å utsette dem starter en tjeneste på nytt én gang, selv etter mange konfigurasjonsendringer. Det unngår unødvendige omstarter midt i playen og sparer tid.
Per vert, ikke globalt
Tidspunktet for handlers spores per vert. Hver vert kjører sine egne handlers i kø på slutten av playen, uavhengig av de andre.
Problemet med sen omstart
Noen ganger trenger en senere task at tjenesten allerede er startet på nytt. Det er for sent å vente til playen er ferdig, så du må tømme køen tidligere.
Møt flush_handlers
Meta-tasken flush_handlers tvinger alle ventende handlers til å kjøre med én gang, midt i playen.
- name: Run queued handlers now
ansible.builtin.meta: flush_handlersDet er en meta-task
flush_handlers er en spesiell meta-handling som styrer selve Ansible i stedet for å endre den eksterne verten.
Et typisk bruksområde
Endre konfigurasjonen, tøm køen slik at tjenesten startes på nytt, og kjør deretter en smoke test-task mot den nystartede tjenesten.
- name: Update config
ansible.builtin.template:
src: app.j2
dest: /etc/app.conf
notify: Restart app
- ansible.builtin.meta: flush_handlers
- name: Check health
ansible.builtin.uri:
url: http://localhost/healthFeil og handlers
Hvis en vert feiler før playen er ferdig, kjøres de ventende handlerne vanligvis ikke. Det er én grunn til at en tidlig tømming kan være tryggere.
force_handlers som sikkerhetsnett
Sett force_handlers til true i en play for å kjøre handlers som ligger i kø, selv om en vert feiler senere. Dette er nyttig ved omstarter som rydder opp.
- hosts: web
force_handlers: true
tasks:
- ...Tøm køen med måte
Bruk flush_handlers bare når rekkefølgen faktisk krever det. Overdreven bruk fjerner fordelen med batching som handlers gir deg.
Tidslinjen
Taskene kjører ovenfra og ned, handlerne venter i en kø, og deretter utløses de alle ved playens slutt, med mindre du tømmer køen tidligere. ⏱️
Rask kontroll
Du må starte en tjeneste på nytt midt i playen, slik at en senere task kan bruke den. Hva bruker du?
Oppsummering
Handlers kjøres vanligvis én gang ved playens slutt, per vert. Bruk flush_handlers for å utløse dem tidligere, og force_handlers for at de også skal kjøres ved feil. 🚀
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 «Når handlere kjører og flush_handlers» gratis?
Ja – hele teksten i «Når handlere kjører og flush_handlers» 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 «Når handlere kjører og flush_handlers»?
Styr tidspunktet for handlere ved slutten av en play. 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 3 av 4.
Hvor lang tid tar leksjonen «Når handlere kjører og flush_handlers»?
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