2011-12-14 28 views
5

Tôi đã xem xét sử dụng Drools Fusion để thực hiện các quy tắc mẫu mực sau:Drools Fusion hỗ trợ cho dai dẳng, dài chạy sự kiện

  • nếu khách hàng mua hai sản phẩm cùng loại trong vòng một năm, cô ấy thứ ba miễn phí
  • cho chi tiêu hơn 200 USD cho tối đa ba khách hàng giao dịch liên tiếp được giảm giá
  • khi khách hàng không hoạt động trong hơn một năm lời nhắc được tạo ra
  • giám sát viên được thông báo khi một đơn hàng lớn hơn mức trung bình giá trị đơn hàng trong vòng sáu monhts cuối cùng
  • ... và như vậy, đây chỉ là ví dụ từ đỉnh đầu của tôi

Tất cả những quy tắc có thể dễ dàng bày tỏ bằng Drools Fusion. Tuy nhiên sau khi tạo mẫu thử nghiệm và xem xét tài liệu, có vẻ như sản phẩm này phù hợp hơn cho các sự kiện ngắn hạn, ngắn hạn (thị trường chứng khoán, ra quyết định theo thời gian thực).

Câu hỏi đặt ra là: là cần thiết để lưu trữ tất cả các sự kiện trong bộ nhớ? (có thể là hàng triệu giao dịch mua cũ). Hơn nữa có thể làm giảm sự kiện lưu trữ Fusion để chúng tồn tại trong quá trình khởi động lại máy chủ? (Lý tưởng nhất trong cơ sở dữ liệu).

Tôi biết Drools Fusion sự kiện chỉ đơn giản là sự thật trong Drools Expert, vì vậy có lẽ các câu hỏi có thể được mở rộng để: có thể chảy nước miếng Expert kéo dài và lười biếng tải sự thật?

Trả lời

3

Điều bạn có thể làm là tải thông tin lịch sử cho mỗi khách hàng mỗi khi bạn nhận được giao dịch mới cho khách hàng đó. Hoặc định kỳ tải thông tin để xem xét khách hàng không hoạt động. Tất cả các ví dụ mà bạn đề cập trông giống như Sự thật với tôi. Rõ ràng là bạn có thể mô hình hóa mọi thứ dưới dạng sự kiện, nhưng khi bạn đề cập đến điều đó sẽ khiến bạn cần phải có mọi thứ trong bộ nhớ. Để trả lời câu hỏi của bạn về lưu trữ/xử lý hàng triệu sự kiện, trước tiên bạn cần phải trả lời câu hỏi nếu JVM sẽ hỗ trợ để có tất cả các đối tượng đó trong bộ nhớ.

Chúc mừng

+0

Cảm ơn bạn rất nhiều. Điều này có nghĩa là cả Drools Expert và Drools Fusion đều yêu cầu tất cả các sự kiện/sự kiện trong bộ nhớ? Tôi nghĩ Drools sẽ có thể lười biếng tải các sự kiện để xử lý và loại bỏ những thứ không cần thiết nữa ... –

+2

Có nghĩa là bạn có thể thực hiện tải chậm cho một số sự kiện nhưng động cơ sẽ hoạt động tốt hơn rõ ràng là có tất cả các sự kiện trong chính ký ức. Đối với các sự kiện, bạn có một tính năng quản lý vòng đời tự động. Điều đó có nghĩa là tất cả các sự kiện không được khớp với bất kỳ quy tắc nào sẽ tự động bị hủy. Trong chuyên gia, bạn có thể sử dụng các xác nhận hợp lý để xóa các sự kiện không còn được sao lưu cho quy tắc chèn chúng. – salaboy

Các vấn đề liên quan