我需要向其他服务器发送http请求。我可以通过两种方式做到这一点: 1)使用http.request() 2)使用child_process.exec
// ... define timeout, data, url
var __exec = require('child_process').exec;
exec('curl --max-time ' + timeout + ' -d \'' + data + '\' ' + url, function (error, stdout, stderr) {});
在第一种情况下,最短执行时间为0.08秒。 在第二种情况下 - 0.04秒
如果我使用第二个选项,可能会出现哪些问题?特别是在服务器上负载很高的情况下。
感谢。
Benchmark1:
//...
timeStart = +new Date().getTime();
request = http.request(options, function (result) {
//...
result.on('end', function () {
timeEnd = (+new Date().getTime() - timeStart) / 1000;
// log timeEnd
});
});
request.on('error', function (error) {
timeEnd = (+new Date().getTime() - timeStart) / 1000;
// log timeEnd
});
request.end();
Benchmark2:
// ...
timeStart = +new Date().getTime();
exec('curl --max-time ' + timeout + ' -d \'' + data + '\' ' + url, function (error, stdout, stderr) {
timeEnd = (+new Date().getTime() - timeStart) / 1000;
// log timeEnd
});