Hvornår handlers kører & flush_handlers
Styr timingen af handlers ved playets afslutning.
Hvornår handlers kører & flush_handlers er en gratis Ansible Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Ansible Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Ansible Academy-kurset indeholder 4 lektioner i alt.
Handlers køres til sidst
Som standard køres alle handlers, der har fået en notifikation, én gang ved selve slutningen af play'et, efter at alle opgaver er afsluttet. Ikke i det øjeblik, de fik notifikationen.
Hvorfor udsætte dem
Ved at udsætte dem genstartes en tjeneste én gang, selv efter mange konfigurationsændringer. Det undgår unødvendige genstarter midt i afviklingen og sparer tid.
Pr. vært, ikke globalt
Handlernes timing registreres pr. vært. Hver vært kører sine egne handlers i kø ved slutningen af play'et, uafhængigt af de andre.
Problemet med den sene genstart
Nogle gange har en senere opgave brug for, at tjenesten allerede er genstartet. Det er for sent at vente til slutningen af play'et, så du skal tømme køen tidligt.
Mød flush_handlers
Meta-opgaven flush_handlers tvinger alle ventende handlers til at køre med det samme midt i play'et.
- name: Run queued handlers now
ansible.builtin.meta: flush_handlersDet er en meta-opgave
flush_handlers er en særlig meta-handling, der styrer selve Ansible i stedet for at påvirke den eksterne vært.
En typisk anvendelse
Ændr konfigurationen, tøm køen, så tjenesten genstartes, og kør derefter en opgave, der laver en grundlæggende kontrol af den netop genstartede tjeneste.
- 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/healthFejl og handlers
Hvis en vært fejler, før play'et er afsluttet, køres dens ventende handlers normalt ikke. Det er en af grundene til, at en tidlig tømning af køen kan være sikrere.
force_handlers som sikkerhedsnet
Sæt force_handlers til true i et play for at køre handlers i køen, selv når en vært fejler senere. Det er nyttigt til genstarter, der sikrer oprydning.
- hosts: web
force_handlers: true
tasks:
- ...Tøm kun køen efter behov
Brug kun flush_handlers, når rækkefølgen virkelig kræver det. Hvis du bruger det for meget, fjerner du den fordel ved samling, som handlers giver dig.
Tidslinjen
Opgaver køres fra top til bund, handlers venter i en kø, og derefter køres de alle ved play'ets slutning, medmindre du tømmer køen tidligere. ⏱️
Hurtig kontrol
Du skal genstarte en tjeneste midt i play'et, så en senere opgave kan kontakte den. Hvad bruger du?
Opsamling
Handlers køres normalt én gang ved slutningen af play'et og separat for hver vært. Brug flush_handlers til at køre dem tidligt, og force_handlers til at få dem kørt trods fejl. 🚀
Lær YAML med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “Hvornår handlers kører & flush_handlers” gratis?
Ja — hele teksten til “Hvornår handlers kører & flush_handlers” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Ansible Academy-kurset, skal du opgradere til CoddyKit PRO. Ansible Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Hvornår handlers kører & flush_handlers”?
Styr timingen af handlers ved playets afslutning. Du øver dig i Ansible Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Ansible Academy?
Der kræves ingen tidligere erfaring. Ansible Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Hvornår handlers kører & flush_handlers”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Ansible Academy-lektion?
Ja. Alle Ansible Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Giv en handler besked ved ændringer
- Definition af handlers & genstartsmønstre
- Hvornår handlers kører & flush_handlers
- Listen: Én trigger, mange handlers