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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top