我有一个简单的代码在Node js的“ api / get”端点中等待10分钟,尽管同时保留了两个req.setTimeout(9000000);。和server.setTimeout(5000000);仍然没有任何错误也没有得到任何结果。它只是卡住了。
const express = require('express');
const newman = require('newman');
var sleep = require('sleep');
const app = express();
const fs = require('fs');
var request = require("request");
var testexecution = require('./TestStatus');
var uploadtoblob = require('./BlobFiles');
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.get('/api/version',(req,res)=>{
console.log("Started!")
res.status(200).json({
message: 'version 1.1.1'
});
});
app.get('/api/secondEndpoint',(req,res)=>{
console.log("Second Endpoint Started")
request({
uri: "http://protractortestcasesnew.eastus.azurecontainer.io/api/test",
method: "GET",
timeout: 1200000,
followRedirect: true,
maxRedirects: 10
}, function(error, response, body) {
console.log("Second Endpoint Exit")
return res.status(400).json(response.statusMessage);
});
});
app.get('/api/test',(req,res)=>{
req.setTimeout(9000000);
const cp = require('child_process');
var testName=req.rawHeaders[1];
//var enviroment=req.rawHeaders[2];
var enviroment="predev";
var file='/app/TestCases/reports\\testReport.html';
var connectionStringfile='/app/Service/NodejsWebApp/Values.json';
try
{
console.log("Method Entry");
setTimeout(() => { return res.status(200).json({
message: 'Pass'
}); }, 240000);
}
catch (error)
{
if((error.status == 1) && (error.message == "Command failed: npm test") && (fs.existsSync('/app/TestCases/reports\\testReport.html' && '/app/TestCases/reports\\testReport.html.json' )) )
{
console.log("Catch Exit");
console.log("res");
return res.status(404).json({
message: 'Failed npm Error'
});
}
else
{
console.log("Error!");
error.status;
error.message;
error.stderr;
error.stdout;
return res.status(500).json({
message: 'Failed'
});
}
}
});
var server=app.listen(80,()=>console.log("server is up"))
module.exports = app;
server.setTimeout(5000000);
我有一个简单的代码在Node js的“ api / get”端点中等待10分钟,尽管同时保留了两个req.setTimeout(9000000);。和server.setTimeout(5000000);仍然没有任何错误也没有得到任何结果。它只是卡住了。
答案 0 :(得分:0)
我发现大约4分钟后httpClient关闭并且没有给出响应,因此要解决这个问题,您可以在2分钟后对端点进行轮询,看看结果是否可用,然后得到结果。