Come gestire il progetto su larga scala in node.js mantenendo tutto asincrono?
https://softwareengineering.stackexchange.com/questions/196496
-
06-11-2019 - |
Domanda
Ho un modulo di grandi dimensioni che deve elaborare più di 10k di richiesta/ risposta al secondo. Ogni richiesta ha un JSON e deve elaborarlo e verificarlo sul database e generare la risposta sulla base della query DB. Ecco un esempio
Function 1
function ('/get' , fucntion (req1 , res1 , next ){
//to process the req data
processData(req1 , res1 );
});
Function 2
processData(req1 , res1 ){
var J = JSON.parse (req1.body)
//it has to read db three times
//process the json build the response and return
condtionCheck(J , res1){
var a = someVlaue(){
//select a value from a collection set of nosql which have
//more than 1000 document and
//i have to itrate a for loop to check the condition .....etc
//...........
}
........
dataRead(var a , res1){
// is it possible to send response for the req1 object here
res1.send({value b: abcd123})
}
}
}
Function 3 ..... and so on
Il problema principale è tutto il codice che ho scritto all'interno dei dati di processo è sincrono. Bacaue ogni codice dipende dalla precedente chiamata e ci sono così tanti controlli di condizione che vengono utilizzati più volte.
Quindi è bene mettere un'elaborazione così grande in modo sincrono all'interno del nodo? Se scrivo il codice usando asincroni alcune volte tutto lo scenario è arrivato in una condizione di deadlock come evitare tale comportamento? L'asincronizzazione o la funzione come il passaggio hanno effetto sulle prestazioni? Su tale serie di funzioni come possiamo ridurre la latenza?
Nessuna soluzione corretta