ผู้ใช้หลายรายแก้ข้อมูลเดียวกันพร้อมกันและระบบต้องควบคุมการแข่งขัน จึงวินิจฉัยว่า ระบบเว็บแอปพลิเคชันจองห้องพักโรงแรมต้องการส่ง Email ยืนยันการจองให้ผู้ใช้ทันทีหลังจองสำเร็จ แต่การส่ง Email ใช้เวลานาน ทำให้ผู้ใช้ต้องรอนาน ควรแก้ไขอย่างไร
กใช้ Background Job หรือ Message Queue เพื่อส่ง Email แบบ Asynchronous ให้ผู้ใช้ได้รับการยืนยันการจองก่อน
ขลดขนาดเนื้อหาใน Email ให้สั้นลงเพื่อส่งได้เร็วขึ้น
คไม่ส่ง Email ยืนยัน แต่ให้ผู้ใช้ตรวจสอบสถานะเองในระบบ
งเพิ่มจำนวน Thread ของเซิร์ฟเวอร์ให้ส่ง Email ได้หลายฉบับพร้อมกัน
เฉลยอธิบาย
การใช้ Background Job หรือ Message Queue (เช่น RabbitMQ, Redis Queue) ช่วยแยก Task ที่ใช้เวลานาน (การส่ง Email) ออกจาก Request หลัก ทำให้ระบบตอบสนองผู้ใช้ว่าจองสำเร็จได้ทันที แล้ว Background Worker จะส่ง Email ภายหลัง ตัวเลือก A ไม่แก้ปัญหาเรื่องเวลา, ตัวเลือก C ลดประสบการณ์ผู้ใช้, และตัวเลือก D เพิ่ม Thread ไม่ได้แก้ปัญหา Blocking I/O