0Pricing
DevOps Bootcamp · บทเรียน

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. แจ้ง Handler เมื่อมีการเปลี่ยนแปลง
  2. กำหนด Handler และรูปแบบการเริ่มบริการใหม่
  3. Handler ทำงานเมื่อใดและ flush_handlers
  4. Listen: ตัวกระตุ้นเดียว หลาย Handler
← กลับไปที่ DevOps Bootcamp