93 lines
2.7 KiB
JavaScript
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);
|
|
|