0Pricing
DevOps Bootcamp · Lekcja

Listen: jeden wyzwalacz, wiele handlerów

Rozsyłanie pojedynczego powiadomienia.

Listen: jeden wyzwalacz, wiele handlerów to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Jedno zdarzenie, wiele reakcji

Czasami jedna zmiana powinna uruchomić kilka handlerów jednocześnie. Słowo kluczowe listen pozwala wielu handlerom zasubskrybować jeden temat.

Powiadamianie tematu zamiast nazwy

W przypadku listen wartość notify wskazuje nazwę logicznego zdarzenia zamiast tytułu jednego konkretnego handlera.

- name: Update certs
  ansible.builtin.copy:
    src: site.pem
    dest: /etc/ssl/site.pem
  notify: restart web stack

Handlery subskrybują temat za pomocą listen

Każdy handler dodaje wiersz listen z nazwą tego samego tematu. Wszystkie handlery nasłuchujące tego tematu uruchamiają się po otrzymaniu powiadomienia.

handlers:
  - name: Restart nginx
    ansible.builtin.service:
      name: nginx
      state: restarted
    listen: restart web stack

Wiele handlerów, jeden temat

Przypisz kilku handlerom tę samą wartość listen, a pojedyncze notify przekaże powiadomienie do wszystkich. To świetne rozwiązanie przy grupowych restartach.

  - name: Restart php-fpm
    ansible.builtin.service:
      name: php-fpm
      state: restarted
    listen: restart web stack

Oddziel zadania od handlerów

Największą korzyścią jest rozsprzęganie: zadania odwołują się do tematu, a handlery można dodawać lub usuwać bez modyfikowania zadań wysyłających powiadomienia.

name nadal opcjonalne, ale przydatne

Handler korzystający z listen nadal może mieć pole name, dzięki czemu dane wyjściowe pozostają czytelne, a inne zadania mogą również powiadamiać go bezpośrednio.

Handler może nasłuchiwać wielu tematów

Przekaż do listen listę, a jeden handler będzie reagował na kilka różnych tematów. Zareaguje na każde powiadomione zdarzenie.

    listen:
      - restart web stack
      - reload tls

Nadal idempotentne

Powiadomienia oparte na tematach podlegają tym samym zasadom: handlery uruchamiają się tylko po changed, a każdy z nich nadal wykonuje się najwyżej raz w każdym playu.

Nadal obowiązuje kolejność definicji

Gdy temat uruchamia kilka handlerów, wykonują się one w kolejności, w której zostały zdefiniowane na liście handlerów, tak jak zwykłe handlery.

Częste zastosowanie we współdzielonych rolach

Role wielokrotnego użytku wykorzystują listen, aby użytkownicy powiadamiali stały temat, podczas gdy rola może swobodnie zmieniać wewnętrzny zestaw handlerów.

notify a listen

notify to sygnał z zadania, a listen to subskrypcja handlera. Razem zmieniają jedno zdarzenie w wiele działań. 🔔

Szybki test

Chcą Państwo użyć jednego notify, aby jednocześnie ponownie uruchomić trzy usługi. Co pozwala wielu handlerom reagować na jeden temat?

Podsumowanie

Za pomocą listen zadanie powiadamia temat, a każdy zasubskrybowany handler zostaje uruchomiony. Dzięki temu zadania są niezależne od handlerów, a rozwiązanie łatwo skaluje się. 🎯

Często zadawane pytania

Czy lekcja „Listen: jeden wyzwalacz, wiele handlerów” jest bezpłatna?

Tak — pełny tekst „Listen: jeden wyzwalacz, wiele handlerów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „Listen: jeden wyzwalacz, wiele handlerów”?

Rozsyłanie pojedynczego powiadomienia. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Listen: jeden wyzwalacz, wiele handlerów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Powiadamianie handlera o zmianie
  2. Definiowanie handlerów i wzorce restartu
  3. Kiedy uruchamiają się handlery i flush_handlers
  4. Listen: jeden wyzwalacz, wiele handlerów
← Powrót do DevOps Bootcamp