¿Alguien tiene un patrón sólido obteniendo Redis a través de la biblioteca BookSleeve?Mantenimiento de una conexión Redis abierta con BookSleeve
quiero decir:
autor de BookSleeve @MarcGravell recommends no abrir & cerrar la conexión cada vez, sino que mantienen una conexión en toda la aplicación. Pero, ¿cómo puedes manejar los cortes de red? es decir, la conexión podría abrirse con éxito en primer lugar, pero cuando algún código intente leer/escribir en Redis, existe la posibilidad de que la conexión haya caído y usted deba volver a abrirla (y fallar con gracia si no se abre, pero eso es según sus necesidades de diseño.)
Busco fragmento (s) de código que cubra la apertura general de la conexión Redis, y una verificación general activa (+ opcional si no está vivo) que se usaría antes de cada lectura /escribir.
This question sugiere una actitud agradable al problema, pero es solo parcial (no recupera una conexión perdida, por ejemplo), y el accepted answer a esa pregunta dibuja el camino correcto pero no muestra un código concreto.
Espero que este hilo obtenga respuestas sólidas y eventualmente se convierta en una especie de Wiki con respecto al uso de BookSleeve en aplicaciones .Net.
-----------------------------
ACTUALIZACIÓN IMPORTANTE (21/3/2014):
-----------------------------
Marc Gravell (@MarcGravell)/Cambio de la pila tiene recently released la biblioteca StackExchange.Redis que finalmente reemplaza a Booksleeve. Esta nueva biblioteca, entre otras cosas, maneja internamente las reconexiones y hace que mi pregunta sea redundante (es decir, no es redundante para Booksleeve ni para mi respuesta a continuación, pero creo que la mejor manera de seguir adelante es comenzar a utilizar la nueva biblioteca StackExchange.Redis).
Utilice un hilo latido con punto
alphazero
Sí, necesito la lógica de reconexión de hecho ... en un código robusto y limpio ... Por cierto, buen video de youtube. La primera vez que encuentro esto en SO. –
Brillante: la actualización de la respuesta se produce el mismo día que vemos el problema por primera vez. – Anthony