0Pricing
DevOps Bootcamp · 강의

핸들러 실행 시점과 flush_handlers

플레이 종료 시 핸들러 실행 시점을 제어합니다.

핸들러 실행 시점과 flush_handlers은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

핸들러는 마지막에 실행됩니다

기본적으로 알림을 받은 모든 핸들러는 작업이 모두 끝난 플레이의 마지막에 한 번 실행됩니다. 알림을 받은 즉시 실행되는 것이 아닙니다.

왜 나중으로 미루나요

나중으로 미루면 설정이 여러 번 변경되어도 서비스가 한 번만 다시 시작됩니다. 플레이 중간에 불필요하게 다시 시작하는 일을 막고 시간을 절약할 수 있습니다.

전역이 아니라 호스트별입니다

핸들러의 실행 시점은 호스트별로 추적됩니다. 각 호스트는 다른 호스트와 독립적으로 플레이 마지막에 자신의 대기 중인 핸들러를 실행합니다.

늦은 다시 시작 문제

때로는 뒤의 작업이 서비스가 이미 다시 시작된 상태이기를 기대합니다. 플레이가 끝날 때까지 기다리면 너무 늦으므로, 일찍 대기열을 비워야 합니다.

flush_handlers 소개

flush_handlers 메타 작업은 대기 중인 모든 핸들러를 지금 즉시, 플레이 중간에 실행하도록 강제합니다.

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

meta 작업입니다

flush_handlers는 원격 호스트에 접근하는 대신 Ansible 자체를 제어하는 특수한 meta 동작입니다.

일반적인 사용 예

설정을 변경하고, 서비스를 다시 시작하도록 대기열을 비운 다음, 방금 다시 시작된 서비스에 대해 스모크 테스트 작업을 실행합니다.

- 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

실패와 핸들러

호스트가 플레이 마지막 전에 실패하면 해당 호스트의 대기 중인 핸들러는 일반적으로 실행되지 않습니다. 일찍 대기열을 비우는 편이 더 안전할 수 있는 이유 중 하나입니다.

안전망으로서의 force_handlers

플레이에서 force_handlers를 true로 설정하면 호스트가 나중에 실패하더라도 대기 중인 핸들러를 실행합니다. 정리 작업을 위한 다시 시작에 유용합니다.

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

대기열 비우기는 신중하게 사용하십시오

순서상 정말 필요할 때만 flush_handlers를 사용하십시오. 지나치게 사용하면 핸들러가 제공하는 일괄 처리의 이점이 사라집니다.

실행 흐름

작업은 위에서 아래로 실행되고, 핸들러는 대기열에서 기다린 다음, 더 일찍 대기열을 비우지 않는 한 플레이의 마지막에 모두 실행됩니다. ⏱️

빠른 확인

뒤의 작업이 서비스에 접근할 수 있도록 플레이 중간에 서비스를 다시 시작해야 합니다. 무엇을 사용해야 할까요?

복습

핸들러는 일반적으로 호스트별로 플레이 마지막에 한 번 실행됩니다. 일찍 실행하려면 flush_handlers를 사용하고, 실패 후에도 실행하려면 force_handlers를 사용하십시오. 🚀

자주 묻는 질문

“핸들러 실행 시점과 flush_handlers” 강의는 무료인가요?

네 — “핸들러 실행 시점과 flush_handlers” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

“핸들러 실행 시점과 flush_handlers”에서 뭘 배우나요?

플레이 종료 시 핸들러 실행 시점을 제어합니다. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“핸들러 실행 시점과 flush_handlers” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 변경 시 핸들러 알림
  2. 핸들러 정의 및 재시작 패턴
  3. 핸들러 실행 시점과 flush_handlers
  4. listen: 하나의 트리거, 여러 핸들러
← DevOps Bootcamp(으)로 돌아가기