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
notifyyordamida) ishga tushadi. - Yagona bajarilish: Agar bir nechta vazifa bir xil handlerni xabar qilsa ham, u faqat playbook yoki
include_tasks/import_tasksbo‘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