使用mgo和mongodb进行i / o超时

时间:2014-07-09 11:33:44

标签: mongodb go mgo

我正在从mgo运行map-reduce工作。它运行在一个具有超过3.5M记录的集合上。由于某些原因,我现在无法将其移植到聚合中;可能会晚一点。因此,map-reduce是我期待的事情。这个工作,当我从我创建的原始js文件运行它来测试代码和输出,运行正常。我试图把地图和减少代码放在两个字符串中,然后尝试调用mgo.MapReduce为我做map-reduce,我在不同的集合中编写输出。它给了我

读取tcp 127.0.0.1:27017:i / o timeout

尽管如此,因为这项工作已在后台解雇,但它仍在运行。现在根据这个帖子--- http://grokbase.com/t/gg/mgo-users/1396d9wyk3/i-o-timeout-in-statistics-generation-upsert

通过调用session.SetSocketTimeout很容易解决,但我不想这样做,因为这个map-reduce运行的文档总数会有所不同,因此,我相信,时间。所以,我永远无法通过我相信的方式解决问题。

我可能有哪些其他方式?

请帮帮我

1 个答案:

答案 0 :(得分:16)

将我的评论移至答案。

我认为解决这个问题的唯一方法就是将套接字超时设置为非常高的值,例如:

session.SetSocketTimeout(1 * time.Hour)