StackExchange.Redis的“
基本用法”文档解释说,该方法ConnectionMultiplexer
是长期存在的,有望重新使用。
但是,当与服务器的连接断开时该怎么办?是否ConnectionMultiplexer
自动重新连接,或者是否有必要像此答案一样编写代码(引用该答案):
if (RedisConnection == null || !RedisConnection.IsConnected)
{
RedisConnection = ConnectionMultiplexer.Connect(...);
}
RedisCacheDb = RedisConnection.GetDatabase();
上面的代码是处理断开连接恢复的好方法,还是实际上会导致多个ConnectionMultiplexer
实例?同样,该IsConnected
属性应如何解释?
[另外:我相信上面的代码是惰性初始化的一种非常糟糕的形式,尤其是在多线程环境中-请参阅 Jon
Skeet在Singletons上的文章
]。
这是Azure Redis缓存团队建议的模式:
private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() => {
return ConnectionMultiplexer.Connect("mycache.redis.cache.windows.net,abortConnect=false,ssl=true,password=...");
});
public static ConnectionMultiplexer Connection {
get {
return lazyConnection.Value;
}
}
一些要点:
问题内容: 大家好。我有一个使用ServerSocket和Socket类用Java编写的服务器。 我希望能够检测并处理断开连接,然后在必要时重新连接新客户端。 检测客户端断开连接,关闭套接字然后接受新客户端的正确步骤是什么? 问题答案: 大概是在从套接字读取数据,也许是在输入流上使用包装器,例如BufferedReader。在这种情况下,当相应的读取操作返回-1(对于原始read()调用)或为nu
我在服务器上使用Dart 1.8.5。我想实现TCP Socket Server,它侦听传入连接,向每个客户端发送一些数据,并在客户端断开连接时停止生成数据。 下面是示例代码 此代码接受连接并打印“发送数据”。但即使客户不在,它也不会打印“停止发送”。 问题是:如何捕捉侦听器中的客户端断开?
我试图创建一个客户机,该客户机可以使用SSE(服务器发送的事件)从服务器接收事件,我使用OkHttp3和OkHttp3-sse库(com.squareup.OkHttp3:OKHTTP:4.1.0&com.squareup.OkHttp3:OKHTTP-SSE:4.1.0)来实现这一点。我可以连接到服务器并接收事件,但在某个时候,我想断开客户端并关闭我的应用程序。这就是问题所在。连接被关闭,但应用
问题内容: 当我的MongoDB连接空闲几分钟后,下一个请求将错误结束。从命令行客户端,它看起来像这样: 我看到针对MongoHQ和MongoLab的沙箱实例的问题。 由于重新连接,下一个请求通过正常。这是我的网络应用程序中的一个问题,因为几分钟不活动后,在网络请求期间将出现此错误。有两件事让我感到惊讶: MongoDB连接被如此频繁和频繁地破坏,并且 驱动程序只是引发一个异常,而不是在重新连接后
我的用例是周期性地轮询本地目录中的新文件列表,然后将它们上传到1个连接中的FTP服务器。Camel路由在Spring XML中定义如下:
我正在尝试设置Kafka Connect,目的是运行Elasticsearch chSinkConntor。 Kafka安装程序,由3个使用Kerberos、SSL和ACL保护的代理程序组成。 到目前为止,我一直在尝试使用docker/docker-com的连接器运行连接框架和elasticserch-server本地化(使用Kafka 2.4连接到远程kafka安装(Kafka 2.0.1-实际