J’ai besoin d’envoyer une requête http à un autre serveur. Je peux le faire de deux manières: 1) en utilisant http.request () 2) en utilisant 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) {});
Dans le premier cas, le temps d’exécution minimum est de 0,08 seconde. Dans le deuxième cas – 0,04 seconde
Quels problèmes peuvent apparaître au cas où, si j’utilise la deuxième option? Surtout en cas de forte charge sur le serveur.
Merci.
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 });