Jedis中执行eval方法时,为啥要client.setTimeoutInfinite() 将读时间设置为0 ?
client.setTimeoutInfinite();
public Object eval(final String script, final int keyCount, final String... params) {
client.setTimeoutInfinite();
try {
client.eval(script, keyCount, params);
return getEvalResult();
} finally {
client.rollbackTimeout();
}
}
public void setTimeoutInfinite() {
try {
if (!isConnected()) {
connect();
}
socket.setSoTimeout(0);
} catch (SocketException ex) {
broken = true;
throw new JedisConnectionException(ex);
}
}
socket.setSoTimeout(0);超时值为 0 被解释为无穷大超时值