MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Nhận ngoại lệ khi thực hiện khối () trên đối tượng Mono Tôi đã lấy lại từ đối tượng ReactiveMongoRepository

Chặn là không tốt, vì nó liên kết một chuỗi chờ phản hồi. Nó rất xấu trong khuôn khổ phản ứng có ít luồng theo ý của nó và được thiết kế để không có trong số chúng sẽ bị chặn một cách không cần thiết.

Đây là điều mà các khuôn khổ phản ứng được thiết kế để tránh, vì vậy trong trường hợp này, nó chỉ dừng lại ở bạn:

Ngược lại, mã mới của bạn hoạt động không đồng bộ. Chuỗi không bị chặn, vì không có gì thực sự xảy ra cho đến khi kho lưu trữ trả về một giá trị (và sau đó là lambda mà bạn đã chuyển đến savedQuote.subscribe() được thực thi, in kết quả của bạn ra bảng điều khiển.)

Tuy nhiên, mã mới vẫn không tối ưu / bình thường từ góc độ luồng phản ứng, vì bạn đang thực hiện tất cả logic của mình trong phương pháp đăng ký của mình. Điều bình thường cần làm đối với chúng tôi là một loạt lệnh gọi flatMap / map để chuyển đổi các mục trong luồng và sử dụng doOnNext() đối với các tác dụng phụ (chẳng hạn như in ra một giá trị):

stockQuoteClient.getQuoteStream()
            .log("quote-monitor-service")
            .flatMap(quoteRepository::insert)
            .doOnNext(result -> System.out.println("I saved a quote! Id :: " + result.getId())))
            .subscribe();

Nếu bạn đang thực hiện bất kỳ công việc nghiêm túc nào với các luồng phản ứng / phản ứng, nói chung sẽ rất đáng để đọc về chúng. Chúng rất mạnh cho công việc không chặn, nhưng chúng đòi hỏi một cách suy nghĩ (và viết mã) khác với Java "chuẩn" hơn.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - Cách thực hiện truy vấn trên nhiều thuộc tính trong một đối tượng và nhóm kết quả

  2. Làm thế nào để bạn kết xuất nhiều mẫu với một bộ điều khiển tuyến đường sử dụng bộ định tuyến sắt?

  3. Làm thế nào để chạy các lệnh mongoDB thô bằng cách sử dụng mongoose?

  4. Cập nhật mảng với push và slice

  5. Bỏ bộ sưu tập Mongo không xóa dung lượng ổ đĩa