Tipp ins Blaue: Deine Umgebungsvariablen werden nicht an die Kind-Prozesse weitergegeben, deswegen lauschen die Http-Server auf den Port 1337
und nicht auf process.env.PORT
. Lösen könntest du das, indem du beim Forken die Umgebungsvariablen manuell durchreichst: cluster.fork(process.env)
.
Kann man das irgendwie verhindern, beziehungsweise user so Global setzen, dass jeder thread darauf zugreifen kann?
Jein, Threads haben in der Regel einen gemeinsamen Speicherbereich, aber cluster.fork
erzeugt ganz neue Prozesse, die haben völlig getrennte Speicherbereiche. Du könntest aber die Arbeit die im User-Modul stattfindet nur im Master-Prozess erledigen lassen, und die Worker über die Ergebnisse per worker.send
informieren. Das ist aber ganz schönes Gefrickel und du verlierst einige Vorteile der Parallelisierung, weil die Synchronisations-Punkte zwischen deinen Prozessen einbaust.