0Pricing
DevOps Bootcamp · Lektion

Wann Handler ausgeführt werden und flush_handlers

Steuern Sie den Zeitpunkt der Handler-Ausführung am Play-Ende.

Wann Handler ausgeführt werden und flush_handlers ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Handler werden am Ende ausgeführt

Standardmäßig werden alle benachrichtigten Handler einmal ganz am Ende des Plays ausgeführt, nachdem jede Task abgeschlossen ist. Nicht in dem Moment, in dem sie benachrichtigt wurden.

Warum werden sie verzögert?

Durch die Verzögerung wird ein Dienst auch nach vielen Konfigurationsänderungen nur einmal neu gestartet. Das vermeidet unnötige Neustarts während des Plays und spart Zeit.

Pro Host, nicht global

Der Zeitpunkt der Handlerausführung wird pro Host verwaltet. Jeder Host führt seine eigene Warteschlange am Ende des Plays unabhängig von den anderen ab.

Das Problem des späten Neustarts

Manchmal benötigt eine spätere Task den bereits neu gestarteten Dienst. Wenn Sie bis zum Ende des Plays warten, ist es zu spät. Daher müssen Sie die Handler vorzeitig ausführen.

Lernen Sie flush_handlers kennen

Die Meta-Task flush_handlers erzwingt die sofortige Ausführung aller ausstehenden Handler, mitten im Play.

- name: Run queued handlers now
  ansible.builtin.meta: flush_handlers

Es ist eine meta-Task

flush_handlers ist eine spezielle meta-Aktion, die Ansible selbst steuert, statt den entfernten Host zu verändern.

Eine typische Verwendung

Ändern Sie die Konfiguration, führen Sie flush aus, damit der Dienst neu gestartet wird, und führen Sie anschließend eine Smoke-Test-Task für den frisch neu gestarteten Dienst aus.

- 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

Fehler und Handler

Wenn ein Host vor dem Ende des Plays fehlschlägt, werden seine ausstehenden Handler normalerweise nicht ausgeführt. Das ist ein Grund, warum ein vorzeitiges flush sicherer sein kann.

force_handlers als Sicherheitsnetz

Setzen Sie force_handlers in einem Play auf true, damit vorgemerkte Handler auch dann ausgeführt werden, wenn ein Host später fehlschlägt. Das ist für Neustarts zur Bereinigung nützlich.

- hosts: web
  force_handlers: true
  tasks:
    - ...

Flush sparsam einsetzen

Verwenden Sie flush_handlers nur, wenn die Reihenfolge dies wirklich erfordert. Eine übermäßige Verwendung nimmt Ihnen den Vorteil der Bündelung, den Handler bieten.

Der zeitliche Ablauf

Tasks werden von oben nach unten ausgeführt, Handler warten in einer Warteschlange und werden dann am Ende des Plays gemeinsam ausgeführt, sofern Sie sie nicht früher per flush ausführen. ⏱️

Schnelltest

Sie müssen einen Dienst mitten im Play neu starten, damit eine spätere Task ihn erreichen kann. Was verwenden Sie?

Zusammenfassung

Handler werden normalerweise pro Host einmal am Ende des Plays ausgeführt. Verwenden Sie flush_handlers, um sie vorzeitig auszuführen, und force_handlers, damit sie auch bei Fehlern ausgeführt werden. 🚀

Häufig gestellte Fragen

Ist die Lektion „Wann Handler ausgeführt werden und flush_handlers“ kostenlos?

Ja — der vollständige Text von „Wann Handler ausgeführt werden und flush_handlers“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Wann Handler ausgeführt werden und flush_handlers“?

Steuern Sie den Zeitpunkt der Handler-Ausführung am Play-Ende. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um DevOps Bootcamp zu starten?

Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Wann Handler ausgeführt werden und flush_handlers“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?

Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Bei Änderungen einen Handler benachrichtigen
  2. Handler definieren und Neustartmuster
  3. Wann Handler ausgeführt werden und flush_handlers
  4. Listen: Ein Trigger, mehrere Handler
← Zurück zu DevOps Bootcamp