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?
0
A
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
- 1. Tâche céleri célibataire suspendre tous les autres travailleurs céleri
- 2. Superviseur Erlang: comment vérifier si tous les travailleurs ont répondu
- 3. comment déterminer quand augmenter le parallélisme d'un seul travailleur ou augmenter les travailleurs dans la tempête?
- 4. Envoyer des données à tous les clients périodiquement
- 5. Pourquoi est-ce que je peux voir autant de travailleurs chez Heroku? Comment puis-je restreindre l'accès aux autres travailleurs?
- 6. node.js websocket envoyer des données personnalisées
- 7. Limitation des travailleurs actionscript
- 8. Envoyer des messages à tous les navigateurs avec socket io
- 9. Gearman et les travailleurs perdus
- 10. Les demandes faites par des travailleurs peuvent-elles être transmises par l'entremise d'un travailleur du service?
- 11. travailleur de fond, comment structurer les commandes
- 12. Passer des objets aux travailleurs
- 13. envoyer des fichiers de node.js à node.js server
- 14. Comment envoyer des données à tous les clients threadés en Java?
- 15. Comment envoyer des messages non à tous les abonnés
- 16. Comment les lots de données d'apprentissage sont-ils distribués aux travailleurs dans Tensorflow?
- 17. Comment lancer plusieurs autres scripts Python tous ensemble à partir d'un et leur envoyer des arguments?
- 18. Matlabpool très lent à ouvrir les travailleurs
- 19. cas de travailleurs Azure avec des configurations différentes
- 20. ActiveRecord :: RecordNotFound pour tous les travailleurs dans Resque
- 21. Le navigateur est bloqué, les travailleurs à la rescousse?
- 22. mise à jour tous les autres enregistrements
- 23. Node.js envoyer une demande de publication avec des données?
- 24. Travailleurs Web vs child_process pour les fonctions intensives du processeur dans Node.js
- 25. jquery: comment sélectionner tous les autres éléments?
- 26. Attraper "tous les autres" caractères dans ANTLR
- 27. Google App Engine comment inclure les répertoires à déployer au code des travailleurs
- 28. Envoyer des données à une socket spécifique
- 29. tous les autres comme iframe dans asp.net
- 30. Tous les autres (pas ceci)