На моем сайте у меня есть внешний интерфейс angular, вызывающий внутренний конец экспресса.
Некоторые экспресс-вызовы попадают в базу данных для выполнения хранимых процедур, которые могут занимать много времени.
Эти длительные времена ожидания ответа от Express для возврата к angular вызывают ошибку 504.
Есть ли в любом случае, чтобы установить, где angular отправляет сообщение выполнения в Express, а затем пользователь продолжает использоватьугловой сайт, в то время как длительная хранимая процедура заканчивается на экспрессе?(В настоящее время, если пользователь выполняет один из этих длительных процессов, а затем перемещается по угловому узлу, он завершает процесс).
Образец углового вызова:
getDnSP(DnSPCall): Observable<DnSpResult[]> {
const url = 'http://localhost:4200/'+'dn_sp';
const data = ({
dnspcall: DnSPCall
});
return this._http.post(url, data)
.pipe(
map((res) => {
console.log(res);
return <DnSpResult[]> res;
})
);
}
Образец Экспресс:
router.post('/dn_sp', function (req, res) {
var dnspcall = req.body.dnspcall;
console.log(dnspcall);
var sql = "CALL " + db + ".DN_OBJECT(" + dnspcall + "P_ERROR_CD,P_MSG);";
return db.read(sql)
.then((x) => {
console.log(x);
};
client.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
} else {
console.log("No errors!");
}
console.log("Error Code: " + errorcd);
res.send(x);
})
});