ฉันเริ่มซ่อมเซิร์ฟเวอร์ Node.js HTTP และชอบที่จะเขียน Javascript ฝั่งเซิร์ฟเวอร์จริงๆ แต่มีบางอย่างที่ทำให้ฉันเริ่มใช้ Node.js สำหรับเว็บแอปพลิเคชันของฉัน
ฉันเข้าใจแนวคิด async I / O ทั้งหมด แต่ฉันค่อนข้างกังวลเกี่ยวกับเคสขอบที่รหัสขั้นตอนเป็นอย่างมาก CPU เช่นการจัดการภาพหรือเรียงลำดับชุดข้อมูลขนาดใหญ่
ตามที่ฉันเข้าใจเซิร์ฟเวอร์จะเร็วมากสำหรับคำขอหน้าเว็บอย่างง่ายเช่นการดูรายชื่อผู้ใช้หรือการดูโพสต์บล็อก อย่างไรก็ตามหากฉันต้องการเขียนโค้ดที่เน้น CPU มาก (ในส่วนท้ายของผู้ดูแลระบบ) ที่สร้างกราฟิกหรือปรับขนาดภาพหลายพันภาพคำขอจะช้ามาก (ไม่กี่วินาที) เนื่องจากรหัสนี้ไม่ใช่ async ทุกคำขอที่มาถึงเซิร์ฟเวอร์ในช่วงสองสามวินาทีนั้นจะถูกบล็อกจนกว่าคำขอของฉันจะเสร็จสิ้น
หนึ่งข้อเสนอแนะคือการใช้ Web Workers สำหรับงานที่ต้องใช้ CPU มาก อย่างไรก็ตามฉันเกรงว่าเจ้าหน้าที่เว็บจะทำให้การเขียนโค้ดแบบล้างนั้นทำได้ยากเนื่องจากทำงานโดยการรวมไฟล์ JS แยกต่างหาก จะเกิดอะไรขึ้นถ้ารหัสที่ใช้งาน CPU เข้มข้นอยู่ในวิธีการของวัตถุ มันค่อนข้างจะเขียนไฟล์ JS สำหรับทุกวิธีที่ใช้ CPU มาก
ข้อเสนอแนะอีกประการหนึ่งคือการวางไข่กระบวนการเด็ก แต่นั่นทำให้รหัสบำรุงรักษาน้อย
ข้อเสนอแนะใดที่จะเอาชนะอุปสรรค (รับรู้) นี้? คุณจะเขียนโค้ดอ็อบเจกต์ clean object ด้วย Node.js ได้อย่างไรในขณะที่ทำให้แน่ใจว่างานหนักของ CPU นั้นถูกเรียกใช้งาน async?