Редко я вижу ошибку EOF от mgo в моих журналах.В поисках этой проблемы я наткнулся на это обсуждение , где предполагается, что было бы безопасно поставить session.Refresh()
в начале цикла, чтобы решить эту проблему, другие проблемы, такие как ошибка сокета, время ожидания и т. Д.
Однако я не мог найти, должен ли мой цикл быть таким, где коллекция (* mgo.Collection) переназначается после каждого Refresh ():
session := // create mgo session
var collection *mgo.Collection
for{
session.Refresh()
collection := session.DB("dbname").C("collectionName")
....
}
ИЛИ как ниже, гдеколлекция назначается один раз за пределами цикла:
session := // create mgo session
collection := session.DB("dbname").C("collectionName")
for{
session.Refresh()
....
}
Отправка этого сообщения, поскольку я не могу смоделировать этот вопрос по желанию