我正在试验群集和nodejs。我有这个简单的服务器,它返回一个worker的当前PID。为了测试它,我有一个Angular应用程序,在' / pid'上进行100 $ http.get()调用。端点(代码包含在下面)。
Chrome for Desktop会在正常加载/重新加载后的约8秒内为所有100个调用返回相同的PID。如果我重新加载(ctrl + shift + r),我会在大约3秒内随机获得4个独立的PIDS。显然,那里有性能提升,但我似乎无法通过标准加载/重新加载获得相同的结果。
我在Firefox和Chrome Android中获得了理想的行为。
我还没有真正找到这个。我不认为它是一个Angular缓存问题,因为它可以在其他浏览器上正常运行。
我尝试在我的html中添加一个no-cache元标记,以防万一,但这并没有改变anthing。
我已尝试在我的计算机和其他计算机上进行此操作,以确保我的设置不会出现问题。
关于如何在每次加载时正确地在chrome上正常工作的任何想法?
var express = require('express');
var cluster = require('express-cluster');
var cors = require('cors');
var fs = require('fs');
cluster(function(worker) {
var app = express();
app.use(express.static('public'));
app.use(cors())
app.get('/pid', function (req, res) {
for(var i = 0; i < 10000; i++) {
//increase load with loop, to increase need for workers
}
res.send("" + worker.process.pid);
});
console.log("Worker id: " + worker.id);
return app.listen(3009);
}, {count:4});
angular.module('cluster', []).controller('mainCtrl',['$http','$scope', function($http, $scope){
$scope.pids = [];
for(var i = 0; i < 100; i++) {
$http.get("http://localhost:3009/pid").then(function(response) {
$scope.pids.push(response.data);
}, function(error) {
});
}
}]);
20990
20990
20990
20990
...
20817
20743
20818
20746
...
HTML只是pids数组的重复次数。
这是在MEAN Bitnami堆栈上只有1个内核的EC2实例上运行。