Compare View
Commits (5)
Changes
Showing 2 changed files Side-by-side Diff
gateway/resend-delay.js
... | ... | @@ -5,83 +5,54 @@ var LRU = require('lru-cache'); |
5 | 5 | const config = require('./config'); |
6 | 6 | const logger = require('./logger'); |
7 | 7 | |
8 | -var topupRequest; | |
9 | -var resendHandlers = LRU({max: 2000, maxAge: 1000 * 3600 * 36}); | |
10 | - | |
11 | -function init(options) { | |
12 | - if (options && options.request) { | |
13 | - request = options.request; | |
14 | - } else { | |
15 | - logger.warn('Undefined options.request, terminating....'); | |
16 | - process.exit(1); | |
17 | - } | |
18 | -} | |
8 | +const resendHandlers = LRU({max: 2000, maxAge: 1000 * 3600 * 36}); | |
19 | 9 | |
20 | 10 | function cancel(task) { |
21 | - var requestId; | |
22 | - if (typeof task === 'string') { | |
23 | - requestId = task; | |
24 | - } else { | |
25 | - requestId = task.requestId; | |
26 | - } | |
27 | - | |
28 | - if (!requestId) { | |
29 | - return; | |
30 | - } | |
31 | - | |
32 | - var oldHandler = resendHandlers.get(requestId); | |
33 | - if (!oldHandler) { | |
34 | - return; | |
35 | - } | |
11 | + const trx_id = ( typeof task === 'string' ) ? task : task.trx_id; | |
12 | + if (!trx_id) { return; } | |
36 | 13 | |
37 | - logger.verbose('Canceling resend delay', {task: oldHandler.task}); | |
14 | + const oldHandler = resendHandlers.get(trx_id); | |
15 | + if (!oldHandler) { return; } | |
38 | 16 | |
39 | - try { | |
40 | - if (oldHandler.handler) { | |
41 | - clearTimeout(oldHandler.handler); | |
42 | - } | |
43 | - } | |
44 | - catch(e) {}; | |
17 | + const task = oldHandler.task; | |
18 | + logger.verbose('Canceling resend delay', {trx_id: task.trx_id, destination: task.destination, product: task.product, remote_product: task.remote_product}); | |
45 | 19 | |
46 | - try { | |
47 | - resendHandlers.del(requestId); | |
48 | - } | |
49 | - catch(e) {}; | |
20 | + if (oldHandler.handler) { clearTimeout(oldHandler.handler); } | |
21 | + resendHandlers.del(trx_id); | |
50 | 22 | } |
51 | 23 | |
52 | -function register(task) { | |
53 | - if (!task.requestId) { | |
24 | +function register(task, request) { | |
25 | + if (!task.trx_id) { | |
54 | 26 | logger.warn('Invalid task on resendDelay') |
55 | 27 | return; |
56 | 28 | } |
57 | 29 | |
58 | - if (!config || !config.auto_resend || !Number(config.auto_resend.delay_ms) || !Number(config.auto_resend.max_retry)) { | |
30 | + if (!request || !config || !config.auto_resend || !Number(config.auto_resend.delay_ms) || !Number(config.auto_resend.max_retry)) { | |
59 | 31 | return; |
60 | 32 | } |
61 | 33 | |
62 | - var retry = config.auto_resend.max_retry; | |
63 | - var oldHandler = resendHandlers.get(task.requestId); | |
34 | + let retry = config.auto_resend.max_retry; | |
35 | + const oldHandler = resendHandlers.get(task.trx_id); | |
64 | 36 | if (oldHandler) { |
65 | 37 | retry = oldHandler.retry - 1; |
66 | 38 | cancel(task); |
67 | 39 | } |
68 | 40 | |
69 | 41 | if (retry <= 0) { |
70 | - logger.verbose('Resend delay retry exceeded', {task: task}); | |
42 | + logger.verbose('Resend delay retry exceeded', {trx_id: task.trx_id, destination: task.destination, product: task.product, remote_product: task.remote_product}); | |
71 | 43 | cancel(task); |
72 | 44 | return; |
73 | 45 | } |
74 | 46 | |
75 | - logger.verbose('Registering resend delay task request', {task: task, delay_ms: config.auto_resend.delay_ms, retry: retry}); | |
76 | - var handlerData = { | |
47 | + logger.verbose('Registering resend delay task request', {trx_id: task.trx_id, destination: task.destination, product: task.product, remote_product: task.remote_product, delay_ms: config.auto_resend.delay_ms, retry: retry}); | |
48 | + const handlerData = { | |
77 | 49 | handler: setTimeout(request, config.auto_resend.delay_ms, task), |
78 | 50 | task: task, |
79 | 51 | retry: retry |
80 | 52 | } |
81 | 53 | |
82 | - resendHandlers.set(task.requestId, handlerData); | |
54 | + resendHandlers.set(task.trx_id, handlerData); | |
83 | 55 | } |
84 | 56 | |
85 | -exports.init = init; | |
86 | 57 | exports.cancel = cancel; |
87 | 58 | exports.register = register; |