2013-07-23 1 views
0

J'ai un objet javascript en mémoire que j'initialise lorsque le nœud démarre. J'exécute cette application de nœud sur plusieurs cœurs en utilisant le module de cluster. Lorsque je reçois une requête http, elle est reçue par l'un des threads de travail, modifie la valeur de l'objet javascript. Je dois m'assurer que cette valeur modifiée est reflétée pour tous les threads de travail? Comment dois-je le faire?Dans node.js, comment envoyer des données d'un travailleur à tous les autres travailleurs?

Répondre

0

Les processus enfants ne peuvent pas partager des variables, car chaque worker est un processus complet créé avec child_process.spawn.

Pour cela, utilisez une base de données de clés-clés rapide, telle que Redis et node-redis. Ainsi, lorsque votre application démarre, vous pouvez sérialiser votre objet JS et l'affecter à une touche Redis. Ensuite, les travailleurs effectueront toutes les opérations de lecture-mise à jour sur la même clé. Je recommande personnellement de cette façon.

Questions connexes