Tengo un cuerpo de solicitud como el siguiente:
[ { id:"1234", name:"Jayesj", amount:100 }, { id:"123", name:"Yogesh", amount:2090 }, { id:"12345", name:"Ram", amount:100 }, { id:"6674", name:"Shyam", amount:5000 }, ]Y estoy procesando cada objeto con la ayuda de loop -
Para cada objeto tengo que hacer el siguiente procesamiento -
Ejemplo de matriz de respuesta -
[ { id:"1234", pg_resp:{ msg:"success" } }, { id:"123", pg_resp:{ msg:"error" } }, { id:"12345", pg_resp:{ msg:"success" } }, { id:"6674", pg_resp:{ msg:"error" } }, ]He encontrado dos formas de procesar esta solicitud que son:
primer metodo -
i. bucle en cada objeto ii. después de obtener la respuesta completa de la pasarela de pago para el primer objeto iii. hacer objeto de respuesta para el primer objeto iv. luego haga esto para todos los objetos v. luego envíe la respuesta.
en este método, la solicitud con 10 objetos tarda 47 segundos en obtener una respuesta de mi servidor
segundo método -
i. loop on each object ii. send request for first object to payment gateway iii. dont wait for payment gateway response but return a promise iv. do it for all objects. v. promise.all all promises and make response array from that resolved promisesen este método, la solicitud con 10 objetos tarda 7 segundos en obtener una respuesta de mi servidor
El segundo método parece más eficiente, pero el bucle también bloquea el bucle de eventos cuando los objetos en la matriz son más.
Quiero preguntar cuál es la forma más escalable de realizar tales tareas en nodejs (usando una cola o qué) Por favor, sugiera que es muy difícil para mi producto comercial.
Gracias a todos por adelantado.