当前位置: 首页 > 面试题库 >

Spring Mongo查询设置自定义超时

柴嘉石
2023-03-14
问题内容

我想降低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));
}


 类似资料:
  • 问题内容: 需要使用java.net.URL类进行的远程数据请求超时设置。经过一番谷歌搜索后,发现有两个系统属性可用于设置URL类的超时,如下所示。 我无法控制所有系统,也不希望每个人都继续设置系统属性。是否有其他选择可以进行远程请求,这将允许我设置超时。如果没有任何库,则最好使用Java本身。 问题答案: 如果您要打开from ,则可以通过以下方式设置超时时间: 您如何使用或将其传递给什么?

  • /** 设置超媒体自定义参数 @param parameter 自定义参数 例如:@{@"token": @"18231yy31hh12",@"xxx": @"yyyy"} */ [Ntalker ntalker_setHyperMediaData:@{@"token": @"18231yy31hh12",@"xxx": @"yyyy"}];

  • 我正在使用Spring框架。使用NamedParameterJdbcTemplate时,如何设置查询超时?我注意到JdbcTemplate有一个setQueryTimeout(int queryTimeout)方法,但我还没有找到一种使用NamedParameterJdbcTemplate实现这一点的方法。它有一个getJdbcOperations()方法,但似乎没有公开setQueryTimeo

  • 1. 简介 分析云作为企业进行全域用户行为数据分析的数据中台,需要满足企业不同业务角色的各类差异化分析需求。 其中,对于企业深度结合业务模式的定制化需求,分析云平台提供了“自定义SQL查询”的功能,支持业务人员自行编辑复杂的 SQL 查询语言,实现对平台数据仓库中最底层的细粒度用户行为数据进行分析操作,以获取当前分析云平台既有数据模型无法覆盖的个性化分析需求的结果。 2. 使用说明 当前 sql

  • 我需要一些帮助。我试图创建一个自定义查询我在Wordpress中创建的自定义帖子,并使用Elementor Pro。 在我的帖子中,我添加了一个带有数字值的自定义字段“排序”,我想用它来手动排序帖子。 然而,我似乎无法让它发挥作用。 我正在使用最新的Elementor pro版本。 我试着按照他们页面上的说明:https://developers.elementor.com/custom-quer

  • 1. 简介 分析云作为企业进行全域用户行为数据分析的数据中台,需要满足企业不同业务角色的各类差异化分析需求。 其中,对于企业深度结合业务模式的定制化需求,分析云平台提供了“自定义SQL查询”的功能,支持业务人员自行编辑复杂的 SQL 查询语言,实现对平台数据仓库中最底层的细粒度用户行为数据进行分析操作,以获取当前分析云平台既有数据模型无法覆盖的个性化分析需求的结果。 2. 使用说明 当前 sql