서비스 스택의 RedisClient의 BlockingDequeue를 사용하여 처리 할 수있을 때까지 일부 데이터를 유지합니다. 호출 코드는서비스 스택 Redis 서버 다시 부팅 후 다시 연결
using (var client = ClientPool.GetClient())
return client.As<TMessage>().Lists[_channel].BlockingDequeue(timeout);
처럼 레디 스를 호스팅하는 서버를 다시 시작하면 BlockingDequeue에 대한 연결이 좀비를 이동 결코 클라이언트 응용 프로그램을 다시 시작할 때까지 돌아 본다.
BlockingDequeue 및 PooledConnectionManager에 대한 시간 제한 설정을 시도했지만 도움이되지 않았습니다. 서버 쪽에서 제한 시간이 적용되기 때문에 추측하고 있습니다.
이러한 유형의 내결함성이 서비스 스택에 내장되어 있으며 누락 되었습니까?
아니면 우리 구현에서 처리해야 할 부분입니까? 그렇다면 권장되는 접근법이 있습니까?