6

Service Stack の RedisClient の BlockingDequeue を使用して、一部のデータを処理できるようになるまで保持します。呼び出しコードは次のようになります

 using (var client = ClientPool.GetClient())
            return client.As<TMessage>().Lists[_channel].BlockingDequeue(timeout);

Redis をホストしているサーバーが再起動されると、BlockingDequeue の接続はゾンビ状態になり、クライアント アプリケーションが再起動されるまで戻りません。

BlockingDequeue と PooledConnectionManager でタイムアウトを設定しようとしましたが、サーバー側でタイムアウトが強制されているため、どちらも役に立ちませんでした。

このタイプのフォールト トレランスはサービス スタックに組み込まれているのでしょうか。

それとも、実装で処理する必要があるものですか? もしそうなら、推奨されるアプローチはありますか?

4

1 に答える 1