Commit 34c1fc6aa5882d46d4dfccacf97ecd7d65ad9199

Authored by Adhidarma Hadiwinoto
1 parent 2d64cb6a0b
Exists in master

topupRequestRetry

Showing 1 changed file with 21 additions and 11 deletions Side-by-side Diff

... ... @@ -156,23 +156,31 @@ function topupResponseHandler(body, task) {
156 156 }
157 157  
158 158 if (rc == '68') {
159   - task.retry--;
160   -
161   - if (task.retry) {
162   - logger.info('Got pending status, retrying in ' + sleepBeforeRetry + 's');
163   - setTimeout(topupRequest, sleepBeforeRetry * 1000, task, task.retry);
164   - }
165   - else {
166   - logger.warn('Maximum retry for pending status exceeded', {task: task});
167   - }
  159 + topupRequestRetry(task);
168 160 }
169 161 });
170 162 }
171 163  
  164 +function topupRequestRetry(task) {
  165 + task.retry--;
  166 +
  167 + if (task.retry > 0) {
  168 + logger.info('Retrying in ' + sleepBeforeRetry + 's');
  169 + setTimeout(topupRequest, sleepBeforeRetry * 1000, task, task.retry);
  170 + }
  171 + else {
  172 + logger.warn('Maximum retry for pending status exceeded', {task: task});
  173 + }
  174 +}
  175 +
172 176 function topupRequest(task, retry) {
173 177  
174 178 if (retry === undefined) {
175   - task.retry = maxRetry;
  179 + retry = maxRetry;
  180 + }
  181 +
  182 + if (!task.retry) {
  183 + task.retry = retry;
176 184 }
177 185  
178 186 var remoteProduct = task.remoteProduct.split(',');
... ... @@ -214,7 +222,9 @@ function topupRequest(task, retry) {
214 222  
215 223 req.on('error', function(e) {
216 224 logger.warn('problem with request: ' + e.message);
217   - callbackReport(task['requestId'], '40', e.message);
  225 + callbackReport(task['requestId'], '68', e.message);
  226 +
  227 + topupRequestRetry(task);
218 228 });
219 229  
220 230 req.write(postBody);