Implemented MONITOR

This commit is contained in:
Jonathan Leibiusky
2010-08-08 13:48:04 -03:00
parent 0453ffcd1f
commit f0a426a7c7
5 changed files with 45 additions and 6 deletions

View File

@@ -535,4 +535,8 @@ public class Client extends Connection {
public void info() {
sendCommand("INFO");
}
public void monitor() {
sendCommand("MONITOR");
}
}

View File

@@ -68,12 +68,16 @@ public class Connection {
}
}
public void disconnect() throws IOException {
public void disconnect() {
if (connected) {
inputStream.close();
outputStream.close();
if (!socket.isClosed()) {
socket.close();
try {
inputStream.close();
outputStream.close();
if (!socket.isClosed()) {
socket.close();
}
} catch (IOException ex) {
throw new JedisException(ex);
}
connected = false;
}

View File

@@ -638,4 +638,9 @@ public class Jedis {
client.info();
return client.getBulkReply();
}
public void monitor(JedisMonitor jedisMonitor) {
client.monitor();
jedisMonitor.proceed(client);
}
}

View File

@@ -0,0 +1,15 @@
package redis.clients.jedis;
public abstract class JedisMonitor {
protected Client client;
public void proceed(Client client) {
this.client = client;
do {
String command = client.getBulkReply();
onCommand(command);
} while (client.isConnected());
}
public abstract void onCommand(String command);
}