Archived
0

Zond: тикер, для замера времени старта сервера

This commit is contained in:
2017-08-13 17:40:11 +03:00
parent ce4e8871aa
commit 7018873758

View File

@@ -26,6 +26,8 @@ public class ZondCommandHandler implements CommandHandler {
private PingMonitor pingMonitor;
private boolean flagForceRestartProcess = false;
private boolean flagManualKill = false;
private boolean flagTicker = false;
private Thread threadTicker;
ZondCommandHandler(PipeInputStream proxyStdIn) {
this.proxyStdIn = proxyStdIn;
@@ -37,6 +39,22 @@ public class ZondCommandHandler implements CommandHandler {
.reset().toString();
}
private void buildThreadTicker() {
threadTicker = new Thread(() -> {
int sec = 0;
while (!Thread.currentThread().isInterrupted() && flagTicker) {
Shell.getInstance().getOutput().println(zondColored(
Ansi.ansi().fg(Ansi.Color.CYAN).a("Tick "+(sec++)+" sec").toString()
));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
break;
}
}
}, "Thread Ticker");
}
@Override
public void handle(String commandLine) {
if (commandLine.startsWith(":")) {
@@ -70,6 +88,9 @@ public class ZondCommandHandler implements CommandHandler {
} catch (IOException e) {
e.printStackTrace();
}
} else if (line.equalsIgnoreCase("ticker")) {
flagTicker = !flagTicker;
Shell.getInstance().getOutput().println(zondColored("Ticker " + (flagTicker?"on":"off")));
}
}
@@ -110,12 +131,23 @@ public class ZondCommandHandler implements CommandHandler {
server.start(Config.getInstance().getInt("bridge.port"));
deadTime = (System.currentTimeMillis()/1000) + (delay*1000);
pingMonitor.start(() -> {
Shell.getInstance().getOutput().println(zondColored("[!] Process - zobie?"));
Shell.getInstance().getOutput().println(zondColored("[!] Force shutdown process."));
flagForceRestartProcess = true;
killProcess();
});
Runnable callback;
if (flagTicker) {
callback = () -> {
Shell.getInstance().getOutput().println(zondColored("[!] Process - zobie?"));
};
buildThreadTicker();
threadTicker.start();
} else {
callback = () -> {
Shell.getInstance().getOutput().println(zondColored("[!] Process - zobie?"));
Shell.getInstance().getOutput().println(zondColored("[!] Force shutdown process."));
flagForceRestartProcess = true;
killProcess();
};
}
pingMonitor.start(callback);
code = executor.execute(commandLine);
} catch (ExecuteException e) {
code = e.getExitValue();
@@ -133,6 +165,8 @@ public class ZondCommandHandler implements CommandHandler {
if (pingMonitor.isCorrectShutdown()) {
flagForceRestartProcess = false;
_try = 0;
if (flagTicker)
threadTicker.interrupt();
break;
} else {
if (currTime <= deadTime && !flagManualKill) {
@@ -168,6 +202,8 @@ public class ZondCommandHandler implements CommandHandler {
pingMonitor.stop();
watchdog.destroyProcess();
threadExec.interrupt();
if (threadTicker != null)
threadTicker.interrupt();
}
}
}