Implemented BRPOP
This commit is contained in:
@@ -10,7 +10,7 @@ Jedis is a WORK IN PROGRESS.
|
||||
- Publish/Subscribe
|
||||
- Persistence control commands
|
||||
- Remote server control commands
|
||||
- The AUTH, BRPOP, ZRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE commands
|
||||
- The AUTH, ZRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE commands
|
||||
|
||||
But stay close because things are going fast and all this will be implemented soon!
|
||||
|
||||
@@ -20,7 +20,7 @@ But stay close because things are going fast and all this will be implemented so
|
||||
- Commands operating on all the kind of values
|
||||
- Commands operating on string values
|
||||
- Commands operating on hashes
|
||||
- Commands operating on lists (not BRPOP)
|
||||
- Commands operating on lists
|
||||
- Commands operating on sets
|
||||
- Commands operating on sorted sets (not ZRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE)
|
||||
- Transactions
|
||||
|
||||
@@ -413,4 +413,8 @@ public class Client extends Connection {
|
||||
public void sort(String key, String dstkey) throws JedisException {
|
||||
sendCommand("SORT", key, "STORE", dstkey);
|
||||
}
|
||||
|
||||
public void brpop(String[] args) throws JedisException {
|
||||
sendCommand("BRPOP", args);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -530,4 +530,16 @@ public class Jedis {
|
||||
client.sort(key, dstkey);
|
||||
return client.getIntegerReply();
|
||||
}
|
||||
|
||||
public List<String> brpop(int timeout, String... keys)
|
||||
throws JedisException {
|
||||
List<String> args = new ArrayList<String>();
|
||||
for (String arg : keys) {
|
||||
args.add(arg);
|
||||
}
|
||||
args.add(String.valueOf(timeout));
|
||||
|
||||
client.brpop(args.toArray(new String[args.size()]));
|
||||
return client.getMultiBulkReply();
|
||||
}
|
||||
}
|
||||
@@ -242,4 +242,26 @@ public class ListCommandsTest extends Assert {
|
||||
});
|
||||
jedis.lpush("foo", "bar");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void brpop() throws JedisException {
|
||||
List<String> result = jedis.brpop(2, "foo");
|
||||
assertNull(result);
|
||||
|
||||
new Thread(new Runnable() {
|
||||
public void run() {
|
||||
try {
|
||||
Jedis j = new Jedis("localhost");
|
||||
j.connect();
|
||||
List<String> result = j.brpop(0, "foo");
|
||||
assertNotNull(result);
|
||||
assertEquals(1, result.size());
|
||||
assertEquals("bar", result.get(0));
|
||||
} catch (Exception ex) {
|
||||
fail(ex.getMessage());
|
||||
}
|
||||
}
|
||||
});
|
||||
jedis.lpush("foo", "bar");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user