2016-05-14 61 views
0

我們正在使用drools 6(Fusion)的一個非常複雜的解決方案中工作,我希望您能夠閱讀關於讀取關聯結果期間創建的對象的最佳方法。 我的第一個基本方法是每隔一段時間閱讀工作內存,尋找新對象並將它們報告給外部服務(REST)。AgendaEventListener似乎並不是最好的方法,因爲我不關心大多數被插入到工作內存中的對象,所以也許最好的方法是在DRL內的某種服務中注入特定的「對象」。這是一個好方法嗎?Drools 6融合通知

回答

0

你有很多選擇。按照我的偏好降序排列:

  1. AgendaEventListener可能是需要最小量LOC的解決方案。它也可能對其他任務有用;所有你在消極的一面是一個額外的方法調用和一個類測試每插入的事實。花生。
  2. 可以將插入宏包裝在DRL函數中,並在全局列表中收集插入的X類事實。您在這裏遇到的問題是您必須將KieContext作爲第二個參數傳遞給函數調用。
  3. 如果類X對象的創建不可避免地與其插入WM相關聯,那麼可以將新對象的註冊表添加到類X內部的靜態List中,以在工廠方法(或構造函數)中完成。
  4. 我把你的「基本方法」放在最後,因爲它需要比監聽器(#1)多得多的週期和維護已經放到REST的X對象集合的開銷。
+0

謝謝Laune的建議。我也認爲#4不是最好的選擇:D。我將嘗試編號爲2的數字,乍一看,它將會消耗更少的資源。 –