Commit 20b54782ebba581bdebfa45825798fec563e6671
1 parent
64f2f233f9
Exists in
master
retry if pending
Showing 2 changed files with 20 additions and 0 deletions Side-by-side Diff
package.json
... | ... | @@ -21,6 +21,7 @@ |
21 | 21 | "dependencies": { |
22 | 22 | "crypto": "0.0.3", |
23 | 23 | "ini": "^1.3.4", |
24 | + "lru-cache": "^4.0.1", | |
24 | 25 | "sate24": "git+http://gitlab.kodesumber.com/reload97/node-sate24.git", |
25 | 26 | "sate24-expresso": "git+http://gitlab.kodesumber.com/reload97/sate24-expresso.git", |
26 | 27 | "winston": "^2.2.0", |
partner-cjk.js
... | ... | @@ -4,12 +4,16 @@ var xml = require('xml'); |
4 | 4 | var url = require('url'); |
5 | 5 | var http = require('http'); |
6 | 6 | var xml2js = require('xml2js').parseString; |
7 | +var LRU = require("lru-cache"); | |
7 | 8 | |
8 | 9 | var config; |
9 | 10 | var callbackReport; |
10 | 11 | var aaa; |
11 | 12 | var logger; |
12 | 13 | var options; |
14 | +var taskCache = LRU({max: 2000}); | |
15 | + | |
16 | +var sleepBeforeRetry = 30; | |
13 | 17 | |
14 | 18 | function start(_config, _callbackReport, options) { |
15 | 19 | config = _config; |
... | ... | @@ -129,10 +133,25 @@ function topupResponseHandler(body) { |
129 | 133 | } |
130 | 134 | |
131 | 135 | callbackReport(trxid, rc, message); |
136 | + | |
137 | + if (rc == '68') { | |
138 | + task = taskCache.get(trxid); | |
139 | + if (!task) { | |
140 | + return; | |
141 | + } | |
142 | + | |
143 | + logger.info('Got pending status, retrying in ' + sleepBeforeRetry + 's'); | |
144 | + setTimeout(topupRequest, sleepBeforeRetry * 1000, task); | |
145 | + } else { | |
146 | + taskCache.del(trxid); | |
147 | + } | |
132 | 148 | }); |
133 | 149 | } |
134 | 150 | |
135 | 151 | function topupRequest(task, retry) { |
152 | + | |
153 | + taskCache.set(task.requestId, task); | |
154 | + | |
136 | 155 | var remoteProduct = task.remoteProduct.split(','); |
137 | 156 | |
138 | 157 | var params = { |