gpt4 book ai didi

tomcat - Groovy Redis 插件超时问题

转载 作者:可可西里 更新时间:2023-11-01 11:45:20 25 4
gpt4 key购买 nike

在带有 JRockit 的 WebLogic 11 上的 Grails 2.0.4 上使用 Redis 插件 1.0.0(我们还在 Tomcat 7 上进行了测试),我们正在使用以下更新 Redis,但不断收到超时异常...

template.execute(new RedisCallback<Object>() {
public Object doInRedis(RedisConnection connection) throws DataAccessException {
connection.multi()
for( def cacheUpdate : cacheList)
connection.zAdd(cacheUpdate[0], cacheUpdate[1], cacheUpdate[2]);
connection.exec()
return null
}
}, true);

cacheList 很小时代码工作正常,但我们试图加载大约 1M 的小对象,这会产生超时问题..

java.net.SocketTimeoutException: Read timed out
at jrockit.net.SocketNativeIO.socketRead(SocketNativeIO.java:46)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.net.SocketInputStream.read(SocketInputStream.java:90)
at redis.clients.util.RedisInputStream.fill(RedisInputStream.java:110)
at redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:46)
at redis.clients.jedis.Protocol.process(Protocol.java:59)
at redis.clients.jedis.Protocol.read(Protocol.java:122)
at redis.clients.jedis.Connection.getAll(Connection.java:207)
at redis.clients.jedis.BinaryTransaction.exec(BinaryTransaction.java:25)
at com.oppen.fund.FundService$1.doInRedis(FundService.groovy:397)

我们在 Redis 配置中将超时设置为 -1,但 Redis 似乎不遵守它,我假设 -1 表示没有超时?

cacheLoaderJedisConnectionFactory(JedisConnectionFactory) {      
hostName = '${grails.cache.redis.hostName}'
port = '${grails.cache.redis.port}'
timeout = -1
password = null
poolConfig = ref('grailsCacheJedisPoolConfig')
}

我们在 WebLogic 11 和 Tomcat 7 上都试过了,同样的超时问题。

最佳答案

**

更新

**

经过进一步调查,Redis 缓存连接超时使用 -1 是问题所在;我们改用了一个非常大的正值,从而消除了超时问题。

关于tomcat - Groovy Redis 插件超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12392308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com