3

我需要向另一台服务器发送一个 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
 });
4

0 回答 0