Skip to content

Instantly share code, notes, and snippets.

@scottbyrns
Created July 24, 2013 17:43
Show Gist options
  • Save scottbyrns/6072753 to your computer and use it in GitHub Desktop.
Save scottbyrns/6072753 to your computer and use it in GitHub Desktop.
Server Status with Java Redis Aspect Messenger
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