在 Nodejs 集群的主代码内部或外部定义变量有什么区别?
what is the difference between defining variables inside or outside the master code in a Nodejs Cluster?
我正在使用集群并试图找出定义变量的最佳方式。
1 - var config
if (cluster.isMaster) {
2 - var config
// master code
for (var i = 0; i < numCPUs; i++) {
cluster.fork()
}
}else{
// worker code
3 - var config
}
在任何地方声明变量并且每个工人都有自己独立的变量副本是一样的吗?
Cluster 旨在让父进程将自己分叉到子进程中。进程不共享变量(甚至是全局变量),因此您必须通过其他方式共享状态。
您可以让子进程通过 .send()
和 .on("message")
与父进程通信。 https://nodejs.org/api/cluster.html#cluster_event_message
如果您想要更简化的方法,让进程通过类似 memshared, but you would have to deal with its asynchronous nature. (Maybe convert it into a promise then use async/await 的方式共享数据库?)
我正在使用集群并试图找出定义变量的最佳方式。
1 - var config
if (cluster.isMaster) {
2 - var config
// master code
for (var i = 0; i < numCPUs; i++) {
cluster.fork()
}
}else{
// worker code
3 - var config
}
在任何地方声明变量并且每个工人都有自己独立的变量副本是一样的吗?
Cluster 旨在让父进程将自己分叉到子进程中。进程不共享变量(甚至是全局变量),因此您必须通过其他方式共享状态。
您可以让子进程通过 .send()
和 .on("message")
与父进程通信。 https://nodejs.org/api/cluster.html#cluster_event_message
如果您想要更简化的方法,让进程通过类似 memshared, but you would have to deal with its asynchronous nature. (Maybe convert it into a promise then use async/await 的方式共享数据库?)