mongodb读取与写入连接超时

时间:2012-03-18 11:09:32

标签: java mongodb

我想为读取和写入配置不同的socketTimeout。如果写入速度慢但读取速度非常快,那就没关系,否则我希望它失败。 我知道我可以在MongoOptions中配置如下:

MongoOptions mongoOptions = new MongoOptions();
mongoOptions.connectionsPerHost = 20;
mongoOptions.threadsAllowedToBlockForConnectionMultiplier = 100;
mongoOptions.maxWaitTime = 1000;
mongoOptions.connectTimeout = 3000;
mongoOptions.socketTimeout = 3000;
mongo = new Mongo(parseServerAddresses("localhost:27017"), mongoOptions);

但在这种情况下,我必须创建两个mongo对象 - 一个用于读取,一个用于写入操作。

我只是在查询级别找不到这个配置,或者在集合级别找不到这个配置,而是拆分读写的定义。

提前致谢

1 个答案:

答案 0 :(得分:-1)

  

我只是在查询级别找不到此配置。

在为特定查询设置此项时,Java驱动程序在find()方法here上具有以下签名:

find(DBObject query, DBObject fields, int numToSkip, int batchSize, int options)

options设置应允许您设置查询选项,例如特定查询的套接字超时。

上述方法已标记为已弃用,但您也可以设置options on a specific cursor

  

我想为读取和写入配置不同的socketTimeout。如果写入速度很慢但读取速度非常快,那就没问题,否则我希望它失败。

请注意,读取可能会在套接字上产生多次读取。文档从服务器批量返回。因此,您可能会非常快速地获得前100个结果,但随后您可能会在接下来的100个结果中超时。

如果您的查询涉及大量文件,您应该知道这一点。