Это на самом деле сложная проблема. Вы можете получить эту ошибку по нескольким причинам.
- Набор реплик полностью недоступен.
- Процесс
mongos
недоступен (в заштрихованных конфигах)
- Набор реплик находится в процессе выбора нового основного элемента.
В идеале # 3 является наиболее распространенной причиной.
В случае № 3 вы можете поймать исключение, подождать секунду и повторить попытку. Возможно, вам придется повторить попытку несколько раз, прежде чем сдаться (что, если это № 1?)
Таким образом, случай, который вы обычно хотите решить, - это изменение основных цветов, которое обычно занимает несколько секунд. Тем не менее, вы не можете ждать вечно, поэтому вы все равно должны быть в состоянии обработать «сбой» через некоторое количество секунд.
Этот код обработки исключений, вероятно, находится где-то в коде MongoMapper . И эй, это OSS, так что это может быть сделано. Но следует признать, что существует несколько потенциальных причин сбоя соединения, поэтому даже примера в документации может быть недостаточно.
При использовании наборов реплик вам также следует учитывать вашу запись о записи . Они также могут генерировать исключения, в том числе некоторую форму «неосновного» исключения, которое, вероятно, также требует специального журнала.