Limit retry delay
This commit is contained in:
parent
9e5f185bce
commit
a466fe57dc
@ -1,6 +1,7 @@
|
||||
require('../../env')
|
||||
const connection = require('amqp-connection-manager').connect(process.env.QUEUE_URL)
|
||||
const logger = require('./logger')
|
||||
const { getRetrySequence } = require('../utils/utils')
|
||||
|
||||
connection.on('connect', () => {
|
||||
logger.info('Connected to amqp Broker')
|
||||
@ -44,7 +45,7 @@ function connectSenderToQueue({ queueName, cb }) {
|
||||
nackMsg: job => channelWrapper.nack(job, false, true),
|
||||
scheduleForRetry: async (data, msgRetries = 0) => {
|
||||
const retries = msgRetries + 1
|
||||
const delay = retries ** 2 * 1000
|
||||
const delay = getRetrySequence(retries) * 1000
|
||||
const retryQueue = `${queueName}-retry-${delay}`
|
||||
await channel.assertQueue(retryQueue, {
|
||||
durable: true,
|
||||
|
@ -2,6 +2,14 @@ const BigNumber = require('bignumber.js')
|
||||
const promiseRetry = require('promise-retry')
|
||||
const Web3 = require('web3')
|
||||
|
||||
const retrySequence = [1, 2, 3, 5, 8, 13, 21, 34, 55, 60]
|
||||
|
||||
function getRetrySequence(count) {
|
||||
return count > retrySequence.length
|
||||
? retrySequence[retrySequence.length - 1]
|
||||
: retrySequence[count - 1]
|
||||
}
|
||||
|
||||
async function syncForEach(array, callback) {
|
||||
for (let index = 0; index < array.length; index++) {
|
||||
await callback(array[index], index, array)
|
||||
@ -112,5 +120,6 @@ module.exports = {
|
||||
setIntervalAndRun,
|
||||
watchdog,
|
||||
privateKeyToAddress,
|
||||
nonceError
|
||||
nonceError,
|
||||
getRetrySequence
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user