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