Commit 34c1fc6aa5882d46d4dfccacf97ecd7d65ad9199
1 parent
2d64cb6a0b
Exists in
master
topupRequestRetry
Showing 1 changed file with 21 additions and 11 deletions Side-by-side Diff
partner-cjk.js
... | ... | @@ -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); |