一尘不染

使用mgo和mongodb的I / O超时

go

我正在通过mgo运行地图缩减任务。它运行在具有超过350万条记录的集合上。由于某些原因,我现在无法将此端口移植到聚合中。可能会晚一些。因此,map-
reduce是我期待的事情。当我从为测试代码和输出而创建的原始js文件运行该作业时,它运行良好。我试图将地图和减少代码放在两个字符串中,然后尝试调用mgo.MapReduce为我做地图减少,以便在其他集合中编写输出。它给了我

读取TCP 127.0.0.1:27017:I / O超时

但是,由于该作业已在后台解雇,因此仍在运行。现在根据这里的线程— http://grokbase.com/t/gg/mgo-
users/1396d9wyk3/io-timeout-in-statistics-generation-
upsert

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

我可能还有其他方式?

请帮我


阅读 407

收藏
2020-07-02

共1个答案

一尘不染

将我的评论移至答案。

我相信解决此问题的唯一方法就是将套接字超时设置为高得离谱,例如:

session.SetSocketTimeout(1 * time.Hour)
2020-07-02