Listen: ตัวกระตุ้นเดียว หลาย Handler
กระจายการแจ้งเตือนเดียวไปยังหลาย Handler
Listen: ตัวกระตุ้นเดียว หลาย Handler เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
เหตุการณ์เดียว การตอบสนองหลายแบบ
บางครั้งการเปลี่ยนแปลงหนึ่งรายการควรเรียกใช้ตัวจัดการหลายตัวพร้อมกัน คีย์เวิร์ด listen ช่วยให้ตัวจัดการหลายตัวสมัครรับหัวข้อเดียวกัน
แจ้งเตือนหัวข้อ ไม่ใช่ชื่อ
เมื่อใช้ listen ค่า notify ของงานจะชี้ไปยังชื่อเหตุการณ์เชิงตรรกะ แทนชื่อของตัวจัดการใดตัวจัดการหนึ่งโดยเฉพาะ
- name: Update certs
ansible.builtin.copy:
src: site.pem
dest: /etc/ssl/site.pem
notify: restart web stackตัวจัดการสมัครรับด้วย listen
ตัวจัดการแต่ละตัวจะเพิ่มบรรทัด listen ที่ระบุหัวข้อเดียวกัน ตัวจัดการทุกตัวที่รับฟังหัวข้อนั้นจะทำงานเมื่อได้รับการแจ้งเตือน
handlers:
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restarted
listen: restart web stackตัวจัดการหลายตัว หัวข้อเดียว
กำหนดค่า listen เดียวกันให้กับตัวจัดการหลายตัว แล้วการแจ้งเตือนเพียงครั้งเดียวจะส่งต่อไปยังตัวจัดการทั้งหมด เหมาะสำหรับการรีสตาร์ตแบบจัดกลุ่ม
- name: Restart php-fpm
ansible.builtin.service:
name: php-fpm
state: restarted
listen: restart web stackแยกงานออกจากตัวจัดการ
ประโยชน์สำคัญคือการแยกการพึ่งพา งานจะอ้างอิงหัวข้อ และคุณสามารถเพิ่มหรือลบตัวจัดการได้โดยไม่ต้องแก้ไขงานที่ส่งการแจ้งเตือน
ชื่อยังคงไม่บังคับ แต่มีประโยชน์
ตัวจัดการที่ใช้ listen ยังคงมี ชื่อ ได้ ซึ่งช่วยให้ผลลัพธ์อ่านง่าย และเปิดให้งานอื่นแจ้งเตือนตัวจัดการนั้นโดยตรงได้เช่นกัน
ตัวจัดการหนึ่งตัวรับฟังได้หลายหัวข้อ
กำหนดรายการให้กับ listen แล้วตัวจัดการหนึ่งตัวจะตอบสนองต่อหัวข้อที่แตกต่างกันหลายหัวข้อ ตัวจัดการจะตอบสนองต่อเหตุการณ์ใดก็ตามที่ได้รับการแจ้งเตือน
listen:
- restart web stack
- reload tlsยังคงทำงานซ้ำได้โดยไม่ก่อให้เกิดผลต่าง
การแจ้งเตือนตามหัวข้อยังคงปฏิบัติตามกฎเดิม ตัวจัดการจะทำงานเฉพาะเมื่อเป็น changed และแต่ละตัวจะทำงานไม่เกินหนึ่งครั้งต่อเพลย์
ลำดับยังคงเป็นลำดับที่กำหนด
เมื่อหัวข้อปลุกตัวจัดการหลายตัว ตัวจัดการเหล่านั้นจะทำงานตามลำดับที่กำหนดไว้ในรายการตัวจัดการ เช่นเดียวกับตัวจัดการทั่วไป
ใช้บ่อยในบทบาทที่ใช้ร่วมกัน
บทบาทที่นำกลับมาใช้ซ้ำได้ใช้ listen เพื่อให้ผู้เรียกใช้งานแจ้งเตือนไปยังหัวข้อที่คงที่ ขณะที่บทบาทสามารถเปลี่ยนชุดตัวจัดการภายในได้อย่างอิสระ
Notify กับ Listen
notify คือสัญญาณจากงาน ส่วน listen คือการสมัครรับบนตัวจัดการ ทั้งสองอย่างร่วมกันเปลี่ยนเหตุการณ์หนึ่งรายการให้เป็นการกระทำหลายอย่าง 🔔
ตรวจสอบความเข้าใจ
คุณต้องการให้การแจ้งเตือนหนึ่งครั้งรีสตาร์ตบริการสามรายการพร้อมกัน อะไรช่วยให้ตัวจัดการหลายตัวตอบสนองต่อหัวข้อเดียวกันได้
สรุป
เมื่อใช้ listen งานจะแจ้งเตือนไปยังหัวข้อหนึ่ง และตัวจัดการทุกตัวที่สมัครรับหัวข้อนั้นจะทำงาน วิธีนี้แยกงานออกจากตัวจัดการและขยายระบบได้อย่างเป็นระเบียบ 🎯
คำถามที่พบบ่อย
บทเรียน “Listen: ตัวกระตุ้นเดียว หลาย Handler” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Listen: ตัวกระตุ้นเดียว หลาย Handler” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Listen: ตัวกระตุ้นเดียว หลาย Handler”
กระจายการแจ้งเตือนเดียวไปยังหลาย Handler คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “Listen: ตัวกระตุ้นเดียว หลาย Handler” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แจ้ง Handler เมื่อมีการเปลี่ยนแปลง
- กำหนด Handler และรูปแบบการเริ่มบริการใหม่
- Handler ทำงานเมื่อใดและ flush_handlers
- Listen: ตัวกระตุ้นเดียว หลาย Handler