node js curl vs http.request

时间:2013-02-18 15:40:17

标签: node.js http curl request

我需要向其他服务器发送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
 });

0 个答案:

没有答案