簡體   English   中英

Redis服務器重啟后,服務堆棧Redis重新連接

[英]Service Stack Redis reconnect after Redis server reboot

我們使用Service Stack的RedisClient的BlockingDequeue來保存一些數據,直到它可以被處理。 調用代碼看起來像

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

如果重新啟動托管Redis的服務器,則BlockingDequeue的連接將變為僵屍,並且在重新啟動客戶端應用程序之前永遠不會返回。

我們已經嘗試在BlockingDequeue和PooledConnectionManager上設置超時但是沒有幫助,我猜是因為超時是在服務器端強制執行的。

這種類型的容錯是否構建在服務堆棧中,我們錯過了它?

或者是我們的實現應該處理的東西? 如果有,是否有任何推薦的方法?

我們在ServiceStack.Redis訂閱代碼中遇到了同樣的問題,我們嘗試了一些設置,例如retrycount,retrytimeout等,它們都不起作用,稍后我們的解決方法是捕獲RedisException並再次進行訂閱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM