我们正在使用ServiceStack的RedisClient的BlockingDequeue来保存一些数据,直到它可以被处理。调用代码看起来像using(varclient=ClientPool.GetClient())returnclient.As().Lists[_channel].BlockingDequeue(timeout);如果托管Redis的服务器重新启动,BlockingDequeue的连接就会变成僵尸,并且在客户端应用程序重新启动之前永远不会返回。我们已经尝试在BlockingDequeue和PooledConnectionManager上设置超时,但都没有帮助,我猜
我们正在使用ServiceStack的RedisClient的BlockingDequeue来保存一些数据,直到它可以被处理。调用代码看起来像using(varclient=ClientPool.GetClient())returnclient.As().Lists[_channel].BlockingDequeue(timeout);如果托管Redis的服务器重新启动,BlockingDequeue的连接就会变成僵尸,并且在客户端应用程序重新启动之前永远不会返回。我们已经尝试在BlockingDequeue和PooledConnectionManager上设置超时,但都没有帮助,我猜
在RedisTypedClient上使用BlockingDequeue时,我收到了看起来像是超时的异常。调用代码看起来像using(varclient=ClientPool.GetClient())returnclient.As().Lists[_channel].BlockingDequeue(timeout);其中超时设置为0,ClientPool是PooledRedisClientManager。堆栈跟踪看起来像ServiceStack.Redis.RedisResponseException:Nomoredata,sPort:51100,LastCommand:atServic