[英]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.