Node.js und CPU intensive Anfragen

Ich habe angefangen, mit dem HTTP-Server von Node.js zu basteln und schreibe sehr gerne serverseitiges Javascript, aber etwas hindert mich daran, Node.js für meine Webanwendung zu verwenden.

Ich verstehe das gesamte asynchrone E / A-Konzept, bin jedoch etwas besorgt über die Randfälle, in denen der prozedurale Code sehr rechenintensiv ist, z. B. bei der Bildbearbeitung oder beim Sortieren großer Datenmengen.

Soweit ich weiß, ist der Server sehr schnell für einfache Webseitenanfragen wie das Anzeigen einer Liste von Benutzern oder das Anzeigen eines Blogposts. Wenn ich jedoch sehr CPU-intensiven Code schreiben möchte (z. B. im Administrator-Backend), der Grafiken generiert oder die Größe von Tausenden von Bildern ändert, ist die Anforderung sehr langsam (einige Sekunden). Da dieser Code nicht asynchron ist, werden alle Anforderungen, die in diesen Sekunden an den Server gesendet werden, blockiert, bis meine langsame Anforderung abgeschlossen ist.

Ein Vorschlag war, Web Worker für CPU-intensive Aufgaben zu verwenden. Ich befürchte jedoch, dass Web-Worker das Schreiben sauberer Codes erschweren, da sie eine separate JS-Datei enthalten. Was ist, wenn sich der CPU-intensive Code in der Methode eines Objekts befindet? Das Schreiben einer JS-Datei für jede CPU-intensive Methode ist ein Kinderspiel.

Ein weiterer Vorschlag war, einen untergeordneten Prozess zu erzeugen, aber das macht den Code noch weniger wartbar.

Vorschläge, um dieses (wahrgenommene) Hindernis zu überwinden? Wie schreibt man sauberen objektorientierten Code mit Node.js und stellt dabei sicher, dass CPU-schwere Tasks asynchron ausgeführt werden?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage