Commit 043ce9c67354af5afaefd997508935bc8061715a
1 parent
9a9dc5bca5
Exists in
master
Change pingSender from setInterval to recursive loop
Showing 3 changed files with 31 additions and 57 deletions Side-by-side Diff
lib/custom-ping.js
1 | 1 | const MODULE_NAME = 'CUSTOM-PING'; |
2 | 2 | |
3 | -const locks = require('locks'); | |
4 | 3 | const uniqid = require('uniqid'); |
5 | 4 | const config = require('komodo-sdk/config'); |
6 | 5 | const logger = require('tektrans-logger'); |
7 | 6 | |
8 | 7 | let bot; |
9 | -const mutex = locks.createMutex(); | |
10 | 8 | |
11 | 9 | const allowedFromPartnerList = ( |
12 | 10 | (config.custom_ping && config.custom_ping.allowed_from_partners) || [] |
... | ... | @@ -15,12 +13,6 @@ const allowedFromPartnerList = ( |
15 | 13 | .map((item) => (item || '').trim().toUpperCase()) |
16 | 14 | .filter((item) => item); |
17 | 15 | |
18 | -const setBot = (botFromCaller) => { | |
19 | - logger.verbose(`${MODULE_NAME} A063F39F: Bot registered for custom ping`); | |
20 | - bot = botFromCaller; | |
21 | -}; | |
22 | -exports.setBot = setBot; | |
23 | - | |
24 | 16 | const isPingMessage = (msg) => { |
25 | 17 | if (!msg) return false; |
26 | 18 | if (typeof msg !== 'string') return false; |
... | ... | @@ -77,49 +69,43 @@ const sleepMs = (ms) => new Promise((resolve) => { |
77 | 69 | const pingSender = async () => { |
78 | 70 | const xid = uniqid(); |
79 | 71 | |
80 | - if ( | |
81 | - !bot | |
82 | - || !config.custom_ping | |
83 | - || !config.custom_ping.send_to | |
84 | - || !Array.isArray(config.custom_ping.send_to) | |
85 | - || !config.custom_ping.send_to.length | |
86 | - ) return; | |
87 | - | |
88 | - if (mutex.tryLock()) { | |
72 | + if (bot) { | |
89 | 73 | const msg = `PING ${xid}`; |
90 | 74 | |
91 | 75 | bot.send(config.username, msg); |
92 | 76 | |
93 | - const partnerCount = config.custom_ping.send_to.length; | |
94 | - for (let i = 0; i < partnerCount; i += 1) { | |
95 | - // eslint-disable-next-line no-await-in-loop | |
96 | - await sleepMs(1000); | |
97 | - | |
98 | - const partner = config.custom_ping.send_to[i]; | |
99 | - | |
100 | - if (config.custom_ping.verbose) { | |
101 | - logger.verbose(`${MODULE_NAME} 21358F45: Sending custom ping`, { | |
102 | - xid, | |
103 | - partner, | |
104 | - msg, | |
105 | - }); | |
77 | + if ( | |
78 | + config.custom_ping | |
79 | + && config.custom_ping.send_to | |
80 | + && Array.isArray(config.custom_ping.send_to) | |
81 | + ) { | |
82 | + const partnerCount = config.custom_ping.send_to.length; | |
83 | + for (let i = 0; i < partnerCount; i += 1) { | |
84 | + // eslint-disable-next-line no-await-in-loop | |
85 | + await sleepMs(1000); | |
86 | + | |
87 | + const partner = config.custom_ping.send_to[i]; | |
88 | + | |
89 | + if (config.custom_ping.verbose) { | |
90 | + logger.verbose(`${MODULE_NAME} 21358F45: Sending custom ping`, { | |
91 | + xid, | |
92 | + partner, | |
93 | + msg, | |
94 | + }); | |
95 | + } | |
96 | + | |
97 | + bot.send(partner, msg); | |
106 | 98 | } |
107 | - | |
108 | - bot.send(partner, msg); | |
109 | 99 | } |
110 | - | |
111 | - mutex.unlock(); | |
112 | 100 | } |
101 | + | |
102 | + await sleepMs(3 * 1000); | |
103 | + pingSender(); | |
113 | 104 | }; |
114 | 105 | |
115 | -if (config.custom_ping && config.custom_ping.send_to) { | |
116 | - const intervalMs = config.custom_ping.interval_ms || (25 * 1000); | |
117 | - logger.verbose(`${MODULE_NAME} 324034EE: Registering ping sender`, { | |
118 | - intervalMs, | |
119 | - partners: config.custom_ping.send_to, | |
120 | - }); | |
121 | - | |
122 | - setInterval(() => { | |
123 | - pingSender(); | |
124 | - }, intervalMs); | |
125 | -} | |
106 | +const setBot = (botFromCaller) => { | |
107 | + logger.verbose(`${MODULE_NAME} A063F39F: Bot registered for custom ping`); | |
108 | + bot = botFromCaller; | |
109 | + pingSender(); | |
110 | +}; | |
111 | +exports.setBot = setBot; |
package-lock.json
... | ... | @@ -11,7 +11,6 @@ |
11 | 11 | "dependencies": { |
12 | 12 | "komodo-center-messaging-client-lib": "git+https://gitlab.kodesumber.com/komodo/komodo-center-messaging-client-lib.git", |
13 | 13 | "komodo-sdk": "^1.43.8", |
14 | - "locks": "^0.2.2", | |
15 | 14 | "moment": "^2.29.1", |
16 | 15 | "simple-xmpp": "^1.3.1", |
17 | 16 | "tektrans-logger": "^1.2.2", |
... | ... | @@ -2314,11 +2313,6 @@ |
2314 | 2313 | "node": ">=4" |
2315 | 2314 | } |
2316 | 2315 | }, |
2317 | - "node_modules/locks": { | |
2318 | - "version": "0.2.2", | |
2319 | - "resolved": "https://registry.npmjs.org/locks/-/locks-0.2.2.tgz", | |
2320 | - "integrity": "sha1-JZkz0TJ8uvD9NmL4//3jaAnYTO0=" | |
2321 | - }, | |
2322 | 2316 | "node_modules/lodash": { |
2323 | 2317 | "version": "4.17.21", |
2324 | 2318 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", |
... | ... | @@ -5813,11 +5807,6 @@ |
5813 | 5807 | "path-exists": "^3.0.0" |
5814 | 5808 | } |
5815 | 5809 | }, |
5816 | - "locks": { | |
5817 | - "version": "0.2.2", | |
5818 | - "resolved": "https://registry.npmjs.org/locks/-/locks-0.2.2.tgz", | |
5819 | - "integrity": "sha1-JZkz0TJ8uvD9NmL4//3jaAnYTO0=" | |
5820 | - }, | |
5821 | 5810 | "lodash": { |
5822 | 5811 | "version": "4.17.21", |
5823 | 5812 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", |
package.json
... | ... | @@ -28,7 +28,6 @@ |
28 | 28 | "dependencies": { |
29 | 29 | "komodo-center-messaging-client-lib": "git+https://gitlab.kodesumber.com/komodo/komodo-center-messaging-client-lib.git", |
30 | 30 | "komodo-sdk": "^1.43.8", |
31 | - "locks": "^0.2.2", | |
32 | 31 | "moment": "^2.29.1", |
33 | 32 | "simple-xmpp": "^1.3.1", |
34 | 33 | "tektrans-logger": "^1.2.2", |