Tôi đang sử dụng RavenDB ở chế độ Trong bộ nhớ để kiểm tra đơn vị. Truy vấn của tôi được hỗ trợ bởi các chỉ mục tĩnh. Tôi không sử dụng API WaitForNonStaleResults()
(tôi cũng không muốn).Chỉ số cũ nên được xử lý như thế nào trong quá trình thử nghiệm?
công việc điển hình cho một bài kiểm tra là:
- khởi RavenDB trong chế độ In-Memory
- Tích hợp chỉ sử dụng
IndexCreation.CreateIndexes(Assembly, IDocumentStore)
- dữ liệu Insert kiểm tra (cho việc xác minh hành vi truy vấn)
- Chạy truy vấn
- Xác minh kết quả truy vấn
Tôi đã nhận thấy các bước 1-3 xảy ra quá nhanh, các chỉ mục tĩnh không có thời gian để cập nhật trước bước 4 - do đó các chỉ mục đã cũ.
Tôi đã tạo một giải pháp nhanh chóng cho việc này. Sau bước 3, tôi thực hiện:
while (documentStore.DocumentDatabase.Statistics.StaleIndexes.Length != 0)
Thread.Sleep(10);
Điều này cảm thấy cồng kềnh. Những gì tôi muốn biết là:
- Các chỉ mục có bị tắt khi chạy RavenDB trong chế độ Trong bộ nhớ không?
- Có cách nào tốt hơn để tránh chỉ mục cũ trong khi thử nghiệm không?
@MattWarren Cảm ơn, Matt. Hữu ích để biết. –
Cách tiếp cận Trình nghe không còn hợp lệ với các bản dựng RavenDB hiện tại nữa. – nathanchere
@FerretallicA Tôi sẽ kiểm tra lại điều này với bản dựng mới nhất. –