İşleme alınana kadar bazı verileri devam ettirmek için Service Stack'ın RedisClient'in BlockingDequeue'sini kullanıyoruz. çağıran koduServis Yığını Redis sunucusu yeniden başlatıldıktan sonra yeniden bağl.
using (var client = ClientPool.GetClient())
return client.As<TMessage>().Lists[_channel].BlockingDequeue(timeout);
gibi REDIS barındıran sunucu yeniden başlatılırsa, BlockingDequeue için bağlantıları zombi gidip asla istemci uygulaması yeniden dek dönmek görünüyor.
Zaman aşımı, PooledConnectionManager'ın yanı sıra BlockingDequeue'da ayarlamayı denedik, ancak yardımcı olmadık, çünkü zaman aşımı sunucu tarafında zorlanıyor.
Hizmet yığınının içine yerleştirilmiş bu tür bir hata toleransı var mı ve eksik mi?
Yoksa bizim uygulamamız gereken bir şey mi? Varsa önerilen yaklaşımlar var mı?