我编写了连接到 Redis 并执行操作的 Java 代码。当我关闭 Redis 服务器时,线程会抛出错误但不会终止。处于TIMED_WAITING状态,线程无限期等待。我应该怎么做才能确保线程不会无限期地等待服务器响应?我希望它简单地完成它的工作。
我尝试在 Jedis 构造函数中添加超时,但没有成功。线程仍在运行。
您可以设置连接和Socket的超时时间:
try {
Jedis jedis = new Jedis(host, port);
jedis.connectTimeout(3000);// 3 seconds for connection
jedis.getClient().setSoTimeout(5000); // 5 seconds for Socket
} catch (JedisConnectionException e) {
// Handle connection error
}
尝试一下并告诉我