En Node.JS, ¿es una buena idea usar un proceso hijo de Python para manejar tareas pesadas de bloqueo de CPU?

Sí. Generar procesos secundarios es una excelente manera de evitar bloquear el proceso principal de Node. Alternativamente, puede generar el proceso secundario Nodo. De esta manera, puede compartir código / bibliotecas y evitar el cambio de contexto. Además, puede intercambiar mensajes entre el proceso principal y el proceso secundario si ambos son scripts de nodo.

Otro diseño políglota sería implementar un sistema de colas. De esta forma, puede reanudar una tarea de Python estancada (o Java o Ruby o Perl) y enviar mensajes. También puede programar procesos secundarios a través de un trabajo cron.

En cuanto al código, hay 3 métodos: spawn, fork y exec. Usaría spawn para su proceso hijo de Python y fork para el nodo. Exec es solo para comandos pequeños porque tiene el límite del búfer.

Echa un vistazo a mi publicación sobre Node Patterns (también disponible como curso en Node University).