Skip to content

Commit 11d0d98

Browse files
author
Jussi Vatjus-Anttila
authored
Merge pull request #4 from OpenTMI/workers_tune
tuning cli util
2 parents d0b1e9c + 9f4047b commit 11d0d98

File tree

4 files changed

+51
-2
lines changed

4 files changed

+51
-2
lines changed

src/arguments.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ const yargs = require('yargs');
55

66
// app modules
77
const {authenticateUser, logoutUser} = require('./cmds/login');
8-
const {showVersion, updateVersion} = require('./cmds/update');
8+
const {showVersion, updateVersion} = require('./cmds/version');
9+
const {showWorkers, reloadWorkers} = require('./cmds/cluster');
910
const config = require('./config');
1011

1112

@@ -14,10 +15,14 @@ yargs.usage('Usage: $0 <command> [options]')
1415
.command('logout', 'Logout user', () => {}, logoutUser)
1516
.command('show', 'Show something from server', argv =>
1617
argv
17-
.command('version', 'Show server version', () => {}, showVersion))
18+
.command('version', 'Show server version', () => {}, showVersion)
19+
.command('workers', 'Show workers status', () => {}, showWorkers))
1820
.command('update', 'Update something from server', argv =>
1921
argv
2022
.command('version <revision>', 'Update server version', () => {}, updateVersion))
23+
.command('restart', 'Restart something from server', argv =>
24+
argv
25+
.command('workers', 'Restart workers', () => {}, reloadWorkers))
2126
.config(config.getState())
2227
.demandCommand()
2328
.alias('h', 'help')

src/cmds/cluster.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
const {Transport, Admin, Cluster} = require('opentmi-jsclient');
2+
3+
4+
const showWorkers = (argv) => {
5+
const transport = new Transport(argv.host);
6+
transport.token = argv.token;
7+
const cluster = new Cluster(transport);
8+
console.log('Start reloading..');
9+
cluster.refresh()
10+
.then(() => {
11+
const {master} = cluster.status;
12+
const {
13+
requireRestart, pid, coresUsed, uptime, memoryUsage
14+
} = master;
15+
console.log(`PID: ${pid}, coreUsed: ${coresUsed}`);
16+
console.log(`uptime: ${uptime}`);
17+
console.log(memoryUsage);
18+
console.log(`state: ${requireRestart ? 'require restart workers' : 'OK'}`);
19+
const connected = cluster.workers.filter(w => w.isConnected);
20+
console.log(`Workers ${connected.length} / ${cluster.workers.length} connected`);
21+
})
22+
.catch((error) => {
23+
console.error(`failed: ${error.message}`);
24+
});
25+
};
26+
27+
const reloadWorkers = (argv) => {
28+
const transport = new Transport(argv.host);
29+
transport.token = argv.token;
30+
const admin = new Admin(transport);
31+
console.log('Start reloading..');
32+
admin.reloadWorkers()
33+
.then(() => {
34+
console.log('Workers reloaded');
35+
})
36+
.catch((error) => {
37+
console.error(`failed: ${error.message}`);
38+
});
39+
};
40+
41+
module.exports = {
42+
showWorkers,
43+
reloadWorkers
44+
};

src/cmds/status.js

Whitespace-only changes.
File renamed without changes.

0 commit comments

Comments
 (0)