Actualmente estamos activando la funcionalidad de limitación de velocidad, cada vez que el usuario acceda al servicio, el código verificará el conteo en redis, si el conteo de envíos está dentro del límite configurado, incrementamos el conteo y permitimos que el usuario realice la operación; de lo contrario, lo haremos verifique recursivamente el límite cada 1 segundo hasta que la validación tenga éxito.
async function _rateLimit() { const key = als.get("instanceId"); let islimitExceeded = await redisClient.checkSubmissionCount(key, constants.REQUEST_LIMIT); // REQUEST_LIMIT is the configured limit lets take as 10 if (!islimitExceeded) { await redisClient.incrementSubmissionCount(key);// increment the count and allow the user to perform the operation } else { await util.promisify(setTimeout)(1000).then(_rateLimit); } }Ahora el requisito es arrojar el error si aún se excede el límite (islimitExceeded=true) incluso después de 10 segundos de verificación recursiva.
Ayuda en este escenario. Gracias.