mam 2 kolekcje: A (3,8 Docs) i B (1,7 docs)MongoDB - PHP - MongoCursorException 'Kursor nie znaleziono'
Mam skrypt PHP, który biegnę z powłoki, które:
- iteruje każdego rekordu w
- ~ 60% czasu, to robi findOne o B (za pomocą _id)
- ma podstawowe matematyki, tworząc tablicę php
gdy pętla wszystkich Dokumenty w A odbywa:
4) pętli nad php tablicy
5) upsert do zbierania C
w (1), to konsekwentnie uzyskać: praca błąd krytyczny: Uncaught wyjątek „MongoCursorException” z komunikatem „Kursor nie znaleziono” Ostatnia pozycja przetwarzany był # 8187 z 3872494.
real 1m25.478s
user 0m0.076s
sys 0m0.064s
uruchomienie go ponownie, bez zmian w kodzie, wyjątek został rzucony w punkcie # 19826/3872495
real 3m19.144s
user 0m0.120s
sys 0m0.072s
I znowu, # 8181/387249
real 1m31.110s
user 0m0.036s
sys 0m0.048s
Tak, zdaję sobie sprawę, że mogę (i zapewne należy) połowu wyjątek ... ale ... dlaczego jest nawet wyrzucane? Zwłaszcza w tak różnym czasie/głębokości w bazie danych.
Jeśli to pomaga, moja konfiguracja to zestaw replik 3-węzłowy (2 + arb). Wziąłem wtórny tryb offline i spróbowałem z podstawowym uruchomieniem. Takie same wyniki (różna liczba wyników przetworzonych i razy, ale zawsze generuje wyjątek Cursor Not Found).
Czy to był ostatecznie problem z przekroczeniem limitu czasu kursora? Dzięki – mils