Sobes.tech
Junior

Handlerlar nima?

sobes.tech AI

AIdan javob

DevOps kontekstida, ayniqsa Ansible kabi vositalarda, Handlerlar (Qabul qiluvchilar) — faqat muayyan shartlar bajarilganda ishlaydigan vazifalar yoki kod bloklari bo‘lib, ular boshqa vazifa tomonidan aniq "xabar berilgan" holda ishga tushadi. Ular xizmatlarni qayta ishga tushirish, serverlarni restart qilish yoki konfiguratsiyada muhim o‘zgarishlardan so‘ng bajarilishi kerak bo‘lgan boshqa harakatlar uchun ishlatiladi.

Asosiy xususiyatlar:

  • Xabar bilan ishga tushiriladi: Handler faqat bir yoki bir nechta vazifa uni aniq "xabar qilganda" (masalan, Ansible'da notify yordamida) ishga tushadi.
  • Yagona bajarilish: Agar bir nechta vazifa bir xil handlerni xabar qilsa ham, u faqat playbook yoki include_tasks/import_tasks bo‘limining oxirida belgilangan joyda bir marta bajariladi. Bu xizmatlarni bir necha marta qayta ishga tushirishning oldini oladi.
  • Deklarativ yondashuv: Ular tizim holatidagi o‘zgarishlarga asoslangan holda qanday harakatlar qilish kerakligini deklarativ tarzda belgilash imkonini beradi, qo‘lda ishga tushirishdan xavotir olmaysiz.

Ansible vazifasida handler xabariga misol:

- name: Veb-serverni sozlash  # Konfiguratsiyani o‘zgartirishi mumkin bo‘lgan vazifa
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify:  # Handlerga xabar beramiz
    - restart nginx

Handler ta'rifi:

handlers:
  - name: restart nginx  # Handler nomi, notify ichidagi nom bilan mos keladi
    service:
      name: nginx
      state: restarted