@escueladigital/micro
Version:
Microservice manager for nodejs with kafka
19 lines (18 loc) • 424 B
JavaScript
module.exports = (offsets = [], Attempts = 4) => {
return new Promise(async (resolve, reject) => {
let intents = 0
while (offsets.length > 0 && intents < Attempts) {
try {
await offsets[0]()
offsets.shift()
} catch (e) {
intents += 1
}
}
if (intents >= 3) {
reject(new Error('No se pudo compensar la transacción'))
} else {
resolve()
}
})
}