Created
July 24, 2013 17:43
-
-
Save scottbyrns/6072753 to your computer and use it in GitHub Desktop.
Server Status with Java Redis Aspect Messenger
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class ServerController extends LiveController | |
{ | |
public ServerController(String group) | |
{ | |
super(group); | |
} | |
@RegisterAsCallback( | |
group = "server-controller", | |
channel = "how many cpu's do you have?" | |
) | |
public void getProcCount (Message message) { | |
RedisMessage redisMessage = new RedisMessage(); | |
redisMessage.setGroup("server-controler"); | |
redisMessage.setChannel("i have this many cpu's"); | |
redisMessage.setMessage(getProcessorCount()); | |
say(redisMessage); | |
} | |
@RegisterAsCallback( | |
group = "server-controller", | |
channel = "report system load" | |
) | |
public void getLoad (Message message) { | |
RedisMessage redisMessage = new RedisMessage(); | |
redisMessage.setGroup("server-controller"); | |
redisMessage.setChannel("system load"); | |
redisMessage.setMessage(ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage()); | |
say(redisMessage); | |
} | |
@RegisterAsCallback( | |
group = "server-controller", | |
channel = "restart redis" | |
) | |
public void restartRedis (Message message) { | |
try { | |
Runtime.getRuntime().exec("/etc/init.d/redis-server restart"); | |
} | |
catch (IOException e) { | |
e.printStackTrace(); | |
} | |
} | |
public void getInfo (Message message) { | |
Server server = new Server(); | |
} | |
public double getServerLoad () { | |
try { | |
Process p = Runtime.getRuntime().exec("uptime | cut -d: -f5 | cut -d, -f1"); | |
try { | |
String line; | |
BufferedReader in = new BufferedReader( | |
new InputStreamReader(p.getInputStream()) ); | |
while ((line = in.readLine()) != null) { | |
return Float.valueOf(line); | |
} | |
in.close(); | |
} | |
catch (Exception e) { | |
e.printStackTrace(); | |
} | |
} | |
catch (IOException ioException) { | |
ioException.printStackTrace(); | |
} | |
return -1.0; | |
} | |
@RegisterAsCallback( | |
group = "server-controller", | |
channel = "get the servers ip address" | |
) | |
public void getServerAddress(Message message) { | |
RedisMessage redisMessage = new RedisMessage(); | |
redisMessage.setGroup("server-controler"); | |
redisMessage.setChannel("server ip"); | |
redisMessage.setMessage(getIP()); | |
say(redisMessage); | |
} | |
public int getProcessorCount () { | |
OperatingSystemMXBean systemMXBean = ManagementFactory.getOperatingSystemMXBean(); | |
return systemMXBean.getAvailableProcessors(); | |
} | |
public String getIP () { | |
try { | |
return InetAddress.getLocalHost().getHostAddress(); | |
} | |
catch (UnknownHostException e) { | |
return "0.0.0.0"; | |
} | |
} | |
public void setServerAddress(Message message) { | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment