Spring mongo queries set custom timeout(Spring mongo 查询设置自定义超时)
问题描述
我想降低 spring-mongo java 应用程序中的超时设置(如果无法访问数据库,查询应该在 300 毫秒后失败).
I would like to lower the timeout setting in my spring-mongo java application (the query should fail after 300 ms if the database is not accessible).
我试过这个配置:
@Configuration
public class MongoConfiguration {
private String mongoUri = "mongodb://127.0.0.1:27017/myDb?connectTimeoutMS=300&socketTimeoutMS=300&waitQueueTimeoutMS=300&wtimeoutMS=300";
@Bean
public MongoDbFactory mongoDbFactory() throws Exception {
Builder options = new MongoClientOptions.Builder().socketTimeout(300).connectTimeout(300).maxWaitTime(300);
return new SimpleMongoDbFactory(new MongoClientURI(mongoUri, options));
}
@Bean
public MongoTemplate mongoTemplate() throws Exception {
MongoDbFactory mongoDbFactory = mongoDbFactory();
MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory);
return mongoTemplate;
}
}
但是 mongoUri 选项和构建器都会更改超时:查询仅在 30 000 毫秒后失败.
But the mongoUri options nor the builder change the timeout: the query fails only after 30 000ms.
我不确定应该覆盖哪个参数,也不确定如何正确执行.
I am not sure which parameter I should override nor the way to do it properly.
感谢您的帮助
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.9.5.RELEASE</version>
</dependency>
推荐答案
我在这里找到了答案:https://scalegrid.io/blog/understanding-mongodb-client-timeout-options/
@Bean
public MongoDbFactory mongoDbFactory() throws Exception {
MongoClientOptions.Builder optionsBuilder = MongoClientOptions.builder();
optionsBuilder.connectTimeout(300);
optionsBuilder.socketTimeout(300);
optionsBuilder.serverSelectionTimeout(300);
return new SimpleMongoDbFactory(new MongoClientURI(mongoUri, optionsBuilder));
}
这篇关于Spring mongo 查询设置自定义超时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Spring mongo 查询设置自定义超时


基础教程推荐
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- 降序排序:Java Map 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01