Ansible Academy · Lektion

Hvornår handlers kører & flush_handlers

Styr timingen af handlers ved playets afslutning.

Lektion 3 af 413 trin

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_handlers

Det 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/health

Fejl 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. 🚀

Gratis at komme i gang

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

  1. Giv en handler besked ved ændringer
  2. Definition af handlers & genstartsmønstre
  3. Hvornår handlers kører & flush_handlers
  4. Listen: Én trigger, mange handlers
← Tilbage til Ansible Academy