Commit ee8f9a71b9b8ae65fe69a9a58f36e9f871f07098

Authored by Adhidarma Hadiwinoto
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;
... ... @@ -3,7 +3,7 @@ var url = require(&#39;url&#39;);
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) {