Question

J'ai un grand module qui doit traiter plus de 10 000 demandes / réponse par seconde. Chaque demande a un JSON et doit la traiter et la vérifier sur la base de données et générer la réponse sur la base de la requête DB. Voici un exemple

 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 

Le problème majeur est tout le code que j'ai écrit dans les données de processus est synchrone. Bacaue chaque code dépend de l'appel précédent et il y a tellement de chèques d'état utilisés à plusieurs reprises.

Il est donc bon de mettre un traitement aussi important dans le nœud synchrone à l'intérieur? Si j'écris le code en utilisant Async à des moments où tout le scénario est devenu dans un état de blocage, comment éviter un tel comportement? Async ou une fonction comme Step ont-ils un effet sur les performances? Sur une telle série de fonction, comment réduire la latence?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top