Nodo.js y solicitudes intensivas de CPU
He empezado a retocar con Node.servidor HTTP js y realmente me gusta escribir Javascript del lado del servidor, pero algo me impide comenzar a usar Node.js para mi aplicación web.
Entiendo todo el concepto de E/S asincrónica, pero estoy algo preocupado por los casos extremos donde el código de procedimiento es muy intensivo en CPU, como la manipulación de imágenes o la clasificación de grandes conjuntos de datos.
Según lo entiendo, el servidor será muy rápido para solicitudes simples de páginas web, como ver un listado de usuarios o visualización de una publicación de blog. Sin embargo, si quiero escribir código muy intensivo de CPU (en el back-end de administración, por ejemplo) que genere gráficos o cambie el tamaño de miles de imágenes, la solicitud será muy lenta (unos segundos). Dado que este código no es asincrónico, todas las solicitudes que lleguen al servidor durante esos pocos segundos se bloquearán hasta que se complete mi solicitud lenta.
Una sugerencia fue usar Web Workers para tareas intensivas de CPU. Sin embargo, me temo que los trabajadores web harán que sea difícil escribir código limpio ya que funciona mediante la inclusión de un archivo JS separado. ¿Qué pasa si el código intensivo de CPU se encuentra en el método de un objeto? Es una especie de mierda para escribir un archivo JS para cada método que es intensivo de CPU.
Otra sugerencia fue generar un proceso hijo, pero eso hace que el código sea aún menos mantenible.
¿Alguna sugerencia para superar este obstáculo (percibido)? Cómo escribir código limpio orientado a objetos con Node.js mientras se asegura de que las tareas pesadas de la CPU se ejecuten async?
Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32
Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52