आपकी त्रुटि इसलिए हो रही है क्योंकि आप स्ट्रीम को बहुत धीमी गति से संसाधित कर रहे हैं, इसलिए आपके अगले बैच में पहुंचने से पहले कर्सर का समय समाप्त हो रहा है।
बैच का आकार स्प्रिंग डेटा क्वेरी ऑब्जेक्ट , या किसी रिपॉजिटरी पर @Meta एनोटेशन। उदाहरण के लिए:
Query query = query(where("firstname").is("luke"))
.batchSize(100);
या रिपॉजिटरी का उपयोग करते समय:
@Meta(batchSize = 100)
List<Person> findByFirstname(String firstname);
देखें स्प्रिंग डेटा MongoDB दस्तावेज़ीकरण अधिक जानकारी के लिए।
समान कॉन्फ़िगरेशन का उपयोग करके प्रति क्वेरी आधार पर कर्सर टाइमआउट को भी अक्षम किया जा सकता है। जैसे @Meta(flags = {CursorOption.NO_TIMEOUT})
।
कर्सर टाइमआउट को प्रति-क्वेरी के आधार पर नहीं बदला जा सकता है। यह एक सर्वर कॉन्फ़िगरेशन है। आपको cursorTimeoutMillis का उपयोग करना होगा सर्वर पैरामीटर उस सर्वर-वाइड को बदलने के लिए।