Spring Mongo查询设置自定义超时

我想降低spring-mongo java应用程序中的超时设置(如果无法访问数据库,则查询将在300 ms后失败)。

我尝试了这个配置:

@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 000ms之后查询失败。

我不确定应该覆盖哪个参数,也不确定该如何正确执行。

谢谢你的帮助

    <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查询设置自定义超时 的全部内容, 来源链接: utcz.com/qa/419934.html

回到顶部