我们使用Service Stack的RedisClient的BlockingDequeue来保存一些数据,直到它可以被处理.调用代码看起来像
using (var client = ClientPool.GetClient()) return client.As().Lists[_channel].BlockingDequeue(timeout);
如果重新启动托管Redis的服务器,则BlockingDequeue的连接将变为僵尸,并且在重新启动客户端应用程序之前永远不会返回.
我们已经尝试在BlockingDequeue和PooledConnectionManager上设置超时但是没有帮助,我猜是因为超时是在服务器端强制执行的.
这种类型的容错是否构建在服务堆栈中,我们错过了它?
或者是我们的实现应该处理的东西?如果有,是否有任何推荐的方法?