Ansible Academy · leksjon

Når handlere kjører og flush_handlers

Styr tidspunktet for handlere ved slutten av en play.

Leksjon 3 av 413 trinn

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_handlers

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

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

Gratis å komme i gang

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

  1. Varsle en handler ved endring
  2. Definere handlere og mønstre for omstart
  3. Når handlere kjører og flush_handlers
  4. Listen: Én utløser, mange handlere
← Tilbake til Ansible Academy