Saya sudah mulai bermain-main dengan server HTTP Node.js dan sangat suka menulis Javascript sisi server tetapi ada sesuatu yang menghalangi saya untuk mulai menggunakan Node.js untuk aplikasi web saya.
Saya mengerti keseluruhan konsep I / O async tapi saya agak khawatir tentang kasus tepi di mana kode prosedural sangat intensif CPU seperti manipulasi gambar atau mengurutkan set data besar.
Seperti yang saya pahami, server akan sangat cepat untuk permintaan halaman web sederhana seperti melihat daftar pengguna atau melihat posting blog. Namun, jika saya ingin menulis kode intensif CPU (di bagian belakang admin misalnya) yang menghasilkan gambar atau mengubah ukuran ribuan gambar, permintaan akan sangat lambat (beberapa detik). Karena kode ini bukan async, setiap permintaan yang datang ke server selama beberapa detik itu akan diblokir sampai permintaan lambat saya selesai.
Satu saran adalah menggunakan Pekerja Web untuk tugas-tugas intensif CPU. Namun, saya khawatir pekerja web akan kesulitan untuk menulis kode bersih karena ini bekerja dengan memasukkan file JS yang terpisah. Bagaimana jika kode intensif CPU terletak di metode objek? Agak menyebalkan untuk menulis file JS untuk setiap metode yang intensif CPU.
Saran lain adalah menelurkan proses anak, tetapi itu membuat kodenya semakin tidak terpelihara.
Adakah saran untuk mengatasi hambatan (yang dirasakan) ini? Bagaimana Anda menulis kode berorientasi objek bersih dengan Node.js sambil memastikan tugas berat CPU dijalankan async?