Commit ee8f9a71b9b8ae65fe69a9a58f36e9f871f07098
1 parent
617f92525e
Exists in
master
resendDelay pakai dari module sate24
Showing 2 changed files with 10 additions and 111 deletions Side-by-side Diff
resend-delay.js
... | ... | @@ -1,107 +0,0 @@ |
1 | -var LRU = require('lru-cache'); | |
2 | -var winston = require('winston'); | |
3 | - | |
4 | -var logger; | |
5 | -var topupRequest; | |
6 | -var resendHandlers = LRU({max: 2000, maxAge: 1000 * 3600 * 36}); | |
7 | - | |
8 | -function init(options) { | |
9 | - if (!options) { | |
10 | - console.log('Undefined options, terminating....'); | |
11 | - process.exit(1); | |
12 | - } | |
13 | - | |
14 | - if (options.config) { | |
15 | - config = options.config; | |
16 | - } else { | |
17 | - console.log('Undefined options.config, terminating....') | |
18 | - process.exit(1); | |
19 | - } | |
20 | - | |
21 | - if (options.topupRequest) { | |
22 | - topupRequest = options.topupRequest; | |
23 | - } else { | |
24 | - console.log('Undefined options.topupRequest, terminating....') | |
25 | - process.exit(1); | |
26 | - } | |
27 | - | |
28 | - if (options.logger) { | |
29 | - logger = options.logger; | |
30 | - } else { | |
31 | - logger = new winston.Logger({ | |
32 | - transports: [ | |
33 | - new (winston.transports.Console)() | |
34 | - ] | |
35 | - }); | |
36 | - } | |
37 | -} | |
38 | - | |
39 | -function cancel(task) { | |
40 | - var requestId; | |
41 | - if (typeof task === 'string') { | |
42 | - requestId = task; | |
43 | - } else { | |
44 | - requestId = task.requestId; | |
45 | - } | |
46 | - | |
47 | - if (!requestId) { | |
48 | - return; | |
49 | - } | |
50 | - | |
51 | - var oldHandler = resendHandlers.get(requestId); | |
52 | - if (!oldHandler) { | |
53 | - return; | |
54 | - } | |
55 | - | |
56 | - logger.verbose('Canceling resend delay', {task: oldHandler.task}); | |
57 | - | |
58 | - try { | |
59 | - if (oldHandler.handler) { | |
60 | - clearTimeout(oldHandler.handler); | |
61 | - } | |
62 | - } | |
63 | - catch(e) {}; | |
64 | - | |
65 | - try { | |
66 | - resendHandlers.del(requestId); | |
67 | - } | |
68 | - catch(e) {}; | |
69 | -} | |
70 | - | |
71 | -function register(task) { | |
72 | - if (!task.requestId) { | |
73 | - logger.warn('Invalid task on resendDelay') | |
74 | - return; | |
75 | - } | |
76 | - | |
77 | - if (!config || !config.globals || !Number(config.globals.auto_resend_delay_secs || !Number(config.globals.auto_resend_delay_max))) { | |
78 | - return; | |
79 | - } | |
80 | - | |
81 | - var retry = config.globals.auto_resend_delay_max; | |
82 | - var oldHandler = resendHandlers.get(task.requestId); | |
83 | - if (oldHandler) { | |
84 | - retry = oldHandler.retry - 1; | |
85 | - cancel(task); | |
86 | - } | |
87 | - | |
88 | - if (retry <= 0) { | |
89 | - logger.verbose('Resend delay retry exceeded', {task: task}); | |
90 | - cancel(task); | |
91 | - return; | |
92 | - } | |
93 | - | |
94 | - logger.verbose('Registering resend delay task request', {task: task, delay: config.globals.auto_resend_delay_secs, retry: retry}); | |
95 | - var handlerData = { | |
96 | - handler: setTimeout(topupRequest, config.globals.auto_resend_delay_secs * 1000, task), | |
97 | - task: task, | |
98 | - retry: retry | |
99 | - } | |
100 | - | |
101 | - resendHandlers.set(task.requestId, handlerData); | |
102 | -} | |
103 | - | |
104 | - | |
105 | -exports.init = init; | |
106 | -exports.cancel = cancel; | |
107 | -exports.register = register; |
xmlout.js
... | ... | @@ -3,7 +3,7 @@ var url = require('url'); |
3 | 3 | var math = require('mathjs'); |
4 | 4 | var winston = require('winston'); |
5 | 5 | var redis = require('redis'); |
6 | -var resendDelay = require('./resend-delay.js'); | |
6 | +var resendDelay = require('sate24/resend-delay.js'); | |
7 | 7 | var LRU = require('lru-cache'); |
8 | 8 | |
9 | 9 | var aaa; |
... | ... | @@ -264,11 +264,17 @@ function start(options) { |
264 | 264 | createRedisClient(config.globals.redis_host, config.globals.redis_port); |
265 | 265 | createServer(); |
266 | 266 | |
267 | - resendDelay.init({ | |
267 | + var resendDelayOptions = { | |
268 | 268 | config: config, |
269 | - topupRequest: topupRequest, | |
269 | + topupRequest: checkStatus, | |
270 | 270 | logger: logger |
271 | - }); | |
271 | + }; | |
272 | + | |
273 | + if (Number(config.globals.topup_request_on_resend_delay)) { | |
274 | + resendDelayOptions.topupRequest = topupRequest; | |
275 | + } | |
276 | + | |
277 | + resendDelay.init(resendDelayOptions); | |
272 | 278 | } |
273 | 279 | |
274 | 280 | function parseSN(message, _config) { |