From 34c1fc6aa5882d46d4dfccacf97ecd7d65ad9199 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <gua@adhisimon.org> Date: Wed, 4 May 2016 10:47:46 +0700 Subject: [PATCH] topupRequestRetry --- partner-cjk.js | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/partner-cjk.js b/partner-cjk.js index 572a6ed..31965a1 100644 --- a/partner-cjk.js +++ b/partner-cjk.js @@ -156,23 +156,31 @@ function topupResponseHandler(body, task) { } if (rc == '68') { - task.retry--; - - if (task.retry) { - logger.info('Got pending status, retrying in ' + sleepBeforeRetry + 's'); - setTimeout(topupRequest, sleepBeforeRetry * 1000, task, task.retry); - } - else { - logger.warn('Maximum retry for pending status exceeded', {task: task}); - } + topupRequestRetry(task); } }); } +function topupRequestRetry(task) { + task.retry--; + + if (task.retry > 0) { + logger.info('Retrying in ' + sleepBeforeRetry + 's'); + setTimeout(topupRequest, sleepBeforeRetry * 1000, task, task.retry); + } + else { + logger.warn('Maximum retry for pending status exceeded', {task: task}); + } +} + function topupRequest(task, retry) { if (retry === undefined) { - task.retry = maxRetry; + retry = maxRetry; + } + + if (!task.retry) { + task.retry = retry; } var remoteProduct = task.remoteProduct.split(','); @@ -214,7 +222,9 @@ function topupRequest(task, retry) { req.on('error', function(e) { logger.warn('problem with request: ' + e.message); - callbackReport(task['requestId'], '40', e.message); + callbackReport(task['requestId'], '68', e.message); + + topupRequestRetry(task); }); req.write(postBody); -- 1.9.0