hazelcast-test/js/index.js
Карпич Дмитрий Александрович 33779e68a1 chore(*): add leak test
2024-12-26 13:08:37 +03:00

93 lines
2.7 KiB
JavaScript

const merge = require('lodash/merge');
const Haz = require('hazelcast-client');
let globalClient = null;
const clientBaseConfig = new Haz.Config.ClientConfig();
// И вот это - единственный корректный способ установки значений в объект
// конфигурации, который затем отдается в коннект и корректно работает
// добро пожаловать в мир ява-разработчиков от IBM !
// clientConfig.groupConfig.name = 'superadmin';
// clientConfig.groupConfig.password = 'dev-pass';
// clientConfig.networkConfig.addresses.push('127.0.0.1:5701');
// clientConfig.properties['hazelcast.client.invocation.timeout.millis'] = 2000;
const cfg = {
groupConfig: {
name: 'superadmin',
password: 'dev-pass',
},
networkConfig: {
addresses: ['127.0.0.1:5701']
},
// properties: {
// 'hazelcast.client.heartbeat.interval': 1000,
// 'hazelcast.client.heartbeat.timeout': 10000,
// 'hazelcast.client.invocation.timeout.millis': 2222,
// }
};
const clientConfig = merge(clientBaseConfig, cfg);
console.log(clientConfig);
const startMem = process.memoryUsage();
const us = {
rss: (startMem.rss / 1024 / 1024) | 0,
hTotal: (startMem.heapTotal / 1024 / 1024) | 0,
hUsed: (startMem.heapUsed / 1024 / 1024) | 0
}
const max = {
rss: 0,
hTotal: 0,
hUsed: 0
};
function memoryUsage() {
const usage = process.memoryUsage();
const uc = {
rss: (usage.rss / 1024 / 1024) | 0,
hTotal: (usage.heapTotal / 1024 / 1024) | 0,
hUsed: (usage.heapUsed / 1024 / 1024) | 0
}
// save peak values
if (uc.rss > max.rss) max.rss = uc.rss
if (uc.hTotal > max.hTotal) max.hTotal = uc.hTotal
if (uc.hUsed > max.hUsed) max.hUsed = uc.hUsed
const time = +Date.now();
process.stdout.write(`\r${time} RSS/Heap Total/Heap Used - start ${us.rss}/${us.hTotal}/${us.hUsed} | current ${uc.rss}/${uc.hTotal}/${uc.hUsed} | max ${max.rss}/${max.hTotal}/${max.hUsed}`);
}
Haz.Client.newHazelcastClient(clientConfig).then((client) => {
console.log('Success!');
globalClient = client;
console.log(globalClient.getLocalEndpoint());
})
.catch((err) => {
console.log(err)
});
setInterval(async () => {
try {
// console.log('Client >>>>>>');
memoryUsage();
if (globalClient) {
const map = await globalClient.getMap('qqz');
const prev = await map.put('q', Date.now());
// console.log('value: ', prev);
}
} catch (e) {
// console.log('>>>>>>>>>>>>>>>>>', e)
}
}, 30);