我需要向另一台服务器发送一个 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 秒
如果我使用第二个选项,会出现哪些问题?特别是在服务器负载高的情况下。
谢谢。
基准1:
//...
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();
基准2:
// ...
timeStart = +new Date().getTime();
exec('curl --max-time ' + timeout + ' -d \'' + data + '\' ' + url, function (error, stdout, stderr) {
timeEnd = (+new Date().getTime() - timeStart) / 1000;
// log timeEnd
});