是否可以更改单个选择的套接字时序?

时间:2015-05-22 15:24:19

标签: mongodb grails

我们的项目使用mongodb来存储文档。我们在我们的DataSource.groovy文件中配置了socketTimeout为60000.我们的大多数查询都没有达到接近该阈值的任何位置,但我认为我们有它以防万一出错。

无论如何,现在我正在处理一个已知长时间查询的查询。进行表空间扫描非常谨慎,我们承认并且现在可以使用。问题是我们当前拥有的数据量导致它超过随机情况下的套接字超时。除此之外,我们预计未来数据量会大幅增长。

所以我的问题是,是否可以增加/删除单个mongodb选择的套接字超时?我发现了以下内容:

abc,20-apr-2015,25,def,xyz
abc,14-apr-2015,40,def,xyz
abc,04-may-2015,130,def,xyz
abc,29-mar-2015,55,def,xyz

这似乎有效,但这也改变了我假设的所有应用程序范围的套接字超时,这是我们不想要的。救命啊!

更新:经过大量的试验和错误后,我找到了一种方法来打开另一个重用配置的mongo连接,但是不用socketTimeout就可以了。

grailsApplication.mainContext.getBean('mongoDatastore').mongo.mongoOptions.socketTimeout = 0

不确定这是否是最简单的解决方案......

1 个答案:

答案 0 :(得分:0)

你使用的是什么版本的mongo?可能maxTimeMS可以帮到你吗? 从文档页面:

    db.collection.find({description: /August [0-9]+, 1969/}).maxTimeMS(50)