add blpop/brpop with timeout parameter interface to JedisCommands

This commit is contained in:
Ming
2014-08-14 10:37:28 +08:00
parent c62672e3a0
commit a30598b7cb
3 changed files with 53 additions and 0 deletions

View File

@@ -3433,4 +3433,31 @@ public class Jedis extends BinaryJedis implements JedisCommands,
client.pfmerge(destkey, sourcekeys);
return client.getStatusCodeReply();
}
@Override
public List<String> blpop(int timeout, String key) {
checkIsInMulti();
List<String> args = new ArrayList<String>();
args.add(key);
args.add(String.valueOf(timeout));
client.blpop(args.toArray(new String[args.size()]));
client.setTimeoutInfinite();
final List<String> multiBulkReply = client.getMultiBulkReply();
client.rollbackTimeout();
return multiBulkReply;
}
@Override
public List<String> brpop(int timeout, String key) {
checkIsInMulti();
List<String> args = new ArrayList<String>();
args.add(key);
args.add(String.valueOf(timeout));
client.brpop(args.toArray(new String[args.size()]));
client.setTimeoutInfinite();
final List<String> multiBulkReply = client.getMultiBulkReply();
client.rollbackTimeout();
return multiBulkReply;
}
}

View File

@@ -1474,4 +1474,26 @@ public class JedisCluster implements JedisCommands, BasicCommands {
}
}.run(key);
}
@Override
public List<String> blpop(final int timeout, final String key) {
return new JedisClusterCommand<List<String>>(connectionHandler,
timeout, maxRedirections) {
@Override
public List<String> execute(Jedis connection) {
return connection.blpop(timeout,key);
}
}.run(null);
}
@Override
public List<String> brpop(final int timeout, final String key) {
return new JedisClusterCommand<List<String>>(connectionHandler,
timeout, maxRedirections) {
@Override
public List<String> execute(Jedis connection) {
return connection.brpop(timeout,key);
}
}.run(null);
}
}

View File

@@ -203,8 +203,12 @@ public interface JedisCommands {
Long rpushx(String key, String... string);
List<String> blpop(String arg);
List<String> blpop(int timeout, String key);
List<String> brpop(String arg);
List<String> brpop(int timeout, String key);
Long del(String key);