Commit 043ce9c67354af5afaefd997508935bc8061715a

Authored by Adhidarma Hadiwinoto
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

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;
... ... @@ -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",
... ... @@ -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",