Commit 3d22698af81261453331e047f1fbf635b32c588d
1 parent
f75a562118
Exists in
master
Fix report order on push-task-prepaid
Showing 1 changed file with 21 additions and 16 deletions Inline Diff
lib/client/push-task-prepaid.js
1 | const MODULE_NAME = 'KOMODO-SDK-PUSH-TRX.CLIENT.PUSH-TASK-PREPAID'; | 1 | const MODULE_NAME = 'KOMODO-SDK-PUSH-TRX.CLIENT.PUSH-TASK-PREPAID'; |
2 | 2 | ||
3 | const MAX_RETRY = 3; | 3 | const MAX_RETRY = 3; |
4 | const RETRY_DELAY_MS = 2 * 1000; | 4 | const RETRY_DELAY_MS = 2 * 1000; |
5 | 5 | ||
6 | const uniqid = require('uniqid'); | 6 | const uniqid = require('uniqid'); |
7 | const config = require('komodo-sdk/config'); | 7 | const config = require('komodo-sdk/config'); |
8 | const { report } = require('komodo-sdk/gateway/pull'); | 8 | const { report } = require('komodo-sdk/gateway/pull'); |
9 | const logger = require('tektrans-logger'); | 9 | const logger = require('tektrans-logger'); |
10 | const wsList = require('./ws-list'); | 10 | const wsList = require('./ws-list'); |
11 | 11 | ||
12 | /** | 12 | /** |
13 | * @param {string} xid | 13 | * @param {string} xid |
14 | * @param {object} task | 14 | * @param {object} task |
15 | * @param {string} gwName | 15 | * @param {string} gwName |
16 | * @param {number} [retry] | 16 | * @param {number} [retry] |
17 | */ | 17 | */ |
18 | const pusher = (xid, task, gwName, retry) => { | 18 | const pusher = (xid, task, gwName, retry) => { |
19 | /** | 19 | /** |
20 | * @type WebSocket | 20 | * @type WebSocket |
21 | */ | 21 | */ |
22 | const ws = wsList[gwName]; | 22 | const ws = wsList[gwName]; |
23 | 23 | ||
24 | if (!ws) { | 24 | if (!ws) { |
25 | logger.verbose(`${MODULE_NAME} 7EB181CF: Invalid websocket`, { | 25 | logger.verbose(`${MODULE_NAME} 7EB181CF: Invalid websocket`, { |
26 | xid, | 26 | xid, |
27 | gwName, | 27 | gwName, |
28 | hasWs: !!ws, | 28 | hasWs: !!ws, |
29 | }); | 29 | }); |
30 | 30 | ||
31 | if ((retry || 0) < MAX_RETRY) { | 31 | if ((retry || 0) < MAX_RETRY) { |
32 | logger.verbose(`${MODULE_NAME} B7B937A2: Will retry`, { | 32 | logger.verbose(`${MODULE_NAME} B7B937A2: Will retry`, { |
33 | xid, | 33 | xid, |
34 | retried: retry || 0, | 34 | retried: retry || 0, |
35 | delayMs: RETRY_DELAY_MS, | 35 | delayMs: RETRY_DELAY_MS, |
36 | }); | 36 | }); |
37 | 37 | ||
38 | report({ | 38 | report({ |
39 | trx_id: task.trx_id, | 39 | trx_id: task.trx_id, |
40 | rc: '68', | 40 | rc: '68', |
41 | message: { | 41 | message: { |
42 | xid, | 42 | xid, |
43 | 'KOMODO-GW-POOL': { | 43 | 'KOMODO-SDK-PUSH-TRX': { |
44 | msg: 'B7B937A2 Invalid websocket on pushing to related gateway, will retry', | 44 | msg: 'B7B937A2 Invalid websocket on pushing to related gateway, will retry', |
45 | gwOrigin: config.partner.handler_name, | ||
46 | gwTarget: gwName, | ||
45 | retried: retry || 0, | 47 | retried: retry || 0, |
46 | gwName, | ||
47 | }, | 48 | }, |
48 | }, | 49 | }, |
49 | }, xid); | 50 | }, xid); |
50 | 51 | ||
51 | setTimeout(() => { | 52 | setTimeout(() => { |
52 | logger.verbose(`${MODULE_NAME} EA985FC2: Retrying`, { | 53 | logger.verbose(`${MODULE_NAME} EA985FC2: Retrying`, { |
53 | xid, | 54 | xid, |
54 | retried: (retry || 0) + 1, | 55 | retried: (retry || 0) + 1, |
55 | }); | 56 | }); |
56 | 57 | ||
57 | pusher(xid, task, gwName, (retry || 0) + 1); | 58 | pusher(xid, task, gwName, (retry || 0) + 1); |
58 | }, RETRY_DELAY_MS); | 59 | }, RETRY_DELAY_MS); |
59 | } else { | 60 | } else { |
60 | logger.warn(`${MODULE_NAME} 7151F200: Retry exceeded`, { | 61 | logger.warn(`${MODULE_NAME} 7151F200: Retry exceeded`, { |
61 | xid, | 62 | xid, |
62 | retried: (retry || 0) + 1, | 63 | retried: (retry || 0) + 1, |
63 | }); | 64 | }); |
64 | 65 | ||
65 | report({ | 66 | report({ |
66 | trx_id: task.trx_id, | 67 | trx_id: task.trx_id, |
67 | rc: '91', | 68 | rc: '91', |
68 | message: { | 69 | message: { |
69 | xid, | 70 | xid, |
70 | 'KOMODO-GW-POOL': { | 71 | 'KOMODO-SDK-PUSH-TRX': { |
71 | msg: '7151F200 Invalid websocket on pushing to related gateway, retry exceeded', | 72 | msg: '7151F200 Invalid websocket on pushing to related gateway, retry exceeded', |
73 | gwOrigin: config.partner.handler_name, | ||
74 | gwTarget: gwName, | ||
72 | retried: retry || 0, | 75 | retried: retry || 0, |
73 | gwName, | ||
74 | }, | 76 | }, |
75 | }, | 77 | }, |
76 | }, xid); | 78 | }, xid); |
77 | } | 79 | } |
78 | 80 | ||
79 | return; | 81 | return; |
80 | } | 82 | } |
81 | 83 | ||
82 | logger.verbose(`${MODULE_NAME} 1E8EB9B9: Pushing task`, { | 84 | const pushReportMsg = `${MODULE_NAME} 1E8EB9B9: Pushing task to related gateway`; |
85 | logger.verbose(pushReportMsg, { | ||
83 | xid, gwName, task, | 86 | xid, gwName, task, |
84 | }); | 87 | }); |
85 | 88 | ||
89 | report({ | ||
90 | trx_id: task.trx_id, | ||
91 | rc: '68', | ||
92 | message: { | ||
93 | xid, | ||
94 | 'KOMODO-SDK-PUSH-TRX': { | ||
95 | msg: pushReportMsg, | ||
96 | gwOrigin: config.partner.handler_name, | ||
97 | gwTarget: gwName, | ||
98 | }, | ||
99 | }, | ||
100 | }); | ||
101 | |||
86 | ws.send(JSON.stringify({ | 102 | ws.send(JSON.stringify({ |
87 | type: 'TASK', | 103 | type: 'TASK', |
88 | ts: new Date(), | 104 | ts: new Date(), |
89 | rid: xid || uniqid(), | 105 | rid: xid || uniqid(), |
90 | senderName: config.handler_name, | 106 | senderName: config.handler_name, |
91 | payload: task, | 107 | payload: task, |
92 | })); | 108 | })); |
93 | 109 | ||
94 | logger.verbose(`${MODULE_NAME} 7D3CECCA: Task pushed`, { xid, gwName }); | 110 | logger.verbose(`${MODULE_NAME} 7D3CECCA: Task pushed`, { xid, gwName }); |
95 | report({ | ||
96 | trx_id: task.trx_id, |