Lỗi của bạn xảy ra do bạn đang xử lý luồng quá chậm, vì vậy con trỏ hết thời gian trước khi bạn chuyển đến đợt tiếp theo.
Kích thước lô có thể được đặt trên Đối tượng truy vấn dữ liệu chuỗi hoặc trên Kho lưu trữ bằng @Meta chú thích. Ví dụ:
Query query = query(where("firstname").is("luke"))
.batchSize(100);
Hoặc khi sử dụng kho:
@Meta(batchSize = 100)
List<Person> findByFirstname(String firstname);
Xem Tài liệu về Spring Data MongoDB để biết thêm chi tiết.
Thời gian chờ con trỏ cũng có thể bị vô hiệu hóa trên mỗi cơ sở truy vấn bằng cách sử dụng cùng một cấu hình. ví dụ. @Meta(flags = {CursorOption.NO_TIMEOUT})
.
Không thể thay đổi thời gian chờ của con trỏ trên cơ sở từng truy vấn. Đó là một cấu hình máy chủ. Bạn cần sử dụng cursorTimeoutMillis tham số máy chủ để thay đổi toàn bộ máy chủ.