Enable eval and evalsha in Jedis pipeline/transaction.
Original pull request: #2988 Closes #1455
This commit is contained in:
committed by
Mark Paluch
parent
9c5f21b840
commit
b22f1ab84c
@@ -26,6 +26,7 @@ import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* @author Mark Paluch
|
||||
* @author Ivan Kripakov
|
||||
* @since 2.0
|
||||
*/
|
||||
class JedisScriptingCommands implements RedisScriptingCommands {
|
||||
@@ -76,11 +77,11 @@ class JedisScriptingCommands implements RedisScriptingCommands {
|
||||
public <T> T eval(byte[] script, ReturnType returnType, int numKeys, byte[]... keysAndArgs) {
|
||||
|
||||
Assert.notNull(script, "Script must not be null");
|
||||
assertDirectMode();
|
||||
|
||||
JedisScriptReturnConverter converter = new JedisScriptReturnConverter(returnType);
|
||||
return (T) connection.invoke().from(it -> it.eval(script, numKeys, keysAndArgs)).getOrElse(converter,
|
||||
() -> converter.convert(null));
|
||||
return (T) connection.invoke()
|
||||
.from(it -> it.eval(script, numKeys, keysAndArgs), t -> t.eval(script, numKeys, keysAndArgs))
|
||||
.getOrElse(converter, () -> converter.convert(null));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -93,11 +94,12 @@ class JedisScriptingCommands implements RedisScriptingCommands {
|
||||
public <T> T evalSha(byte[] scriptSha, ReturnType returnType, int numKeys, byte[]... keysAndArgs) {
|
||||
|
||||
Assert.notNull(scriptSha, "Script digest must not be null");
|
||||
assertDirectMode();
|
||||
|
||||
JedisScriptReturnConverter converter = new JedisScriptReturnConverter(returnType);
|
||||
return (T) connection.invoke().from(it -> it.evalsha(scriptSha, numKeys, keysAndArgs)).getOrElse(converter,
|
||||
() -> converter.convert(null));
|
||||
return (T) connection.invoke()
|
||||
.from(it -> it.evalsha(scriptSha, numKeys, keysAndArgs), t -> t.evalsha(scriptSha, numKeys, keysAndArgs))
|
||||
.getOrElse(converter, () -> converter.convert(null)
|
||||
);
|
||||
}
|
||||
|
||||
private void assertDirectMode() {
|
||||
|
||||
Reference in New Issue
Block a user