当前我的应用程序使用MongoDB。如果我在mongo未运行时发送请求,它将等待30秒后返回超时错误。有没有一种方法可以让我在启动应用程序时了解到这一点?
最终ping套接字:
public static void mongoIsConnected() throws Exception {
String mongoUrlStr = "http://localhost:27017"; // mongo url
URL mongoURL = new URL(mongoUrlStr);
SocketAddress socketAddress = new InetSocketAddress(mongoURL.getHost(), mongoURL.getPort());
Socket socket = new Socket();
socket.connect(socketAddress, 1000);
}
如果mongo没有连接,这将引发错误
您可以:
- 减少服务器选择超时。有关开发和生产配置指南,请参阅此处
- 创建另一个服务器选择超时较低的客户端(例如1(并执行ping(使用run命令助手发出
{ping:1}
(。通过这种方式,您将在1秒内知道部署是否已启动&正在运行