J'ai commencé à bricoler avec Node.js serveur HTTP et j'aime beaucoup écrire Javascript côté serveur, mais quelque chose me garde de commencer à utiliser des Node.js pour mon application web.
Je comprends l'ensemble des e/S asynchrone concept mais je suis un peu préoccupé par les cas où le code de procédure est très consommateur d'UC telles que la manipulation de l'image ou de tri de grands ensembles de données.
Si je comprends bien, le serveur va être très rapide pour la simple page web demandes, telles que l'affichage d'une liste d'utilisateurs ou de l'affichage d'un post de blog. Cependant, si je veux écrire beaucoup de temps CPU de code (dans l'admin de back-end par exemple) qui génère des graphiques ou redimensionne des milliers d'images, la demande sera très lente (quelques secondes). Étant donné que ce code n'est pas asynchrone, toutes les requêtes arrivant sur le serveur pendant ces quelques secondes sera bloqué jusqu'à ce que ma demande lente est fait.
Une suggestion a été d'utiliser des Web workers pour les tâches gourmandes en CPU. Cependant, j'ai peur des web workers sera difficile à écrire du code propre, car il fonctionne par dont un séparé fichier JS. Que faire si le CPU intensive code est situé dans une méthode de l'objet? Il craint d'écrire un fichier JS pour chaque méthode qui est consommateur d'UC.
Une autre suggestion consistait à lancer un processus enfant, mais qui rend le code même de moins en moins gérables.
Toutes les suggestions pour surmonter cette (supposée) de l'obstacle? Comment écrivez-vous nettoyer le code orienté objet avec Node.js tout en veillant à ce CPU lourdes tâches sont exécutées asynchrone?