簡體   English   中英

在Web應用程序中使用Drools Expert / Flow的最佳實踐

[英]Best practices for using Drools Expert/Flow in a Web Application

我目前正在教自己Drools Expert / Flow以及GWT。 我想使用Drools Flow作為事件/命令總線和業務規則引擎來實現應用程序不同部分之間的松散耦合。

到目前為止,我已經從我的測試用例中獲得了Expert和Flow,但是我很難確定如何在Web容器中最好地實現Flow。

我是否應該將所有腳手架放入無狀態會話EJB並讓每個請求從頭開始設置所有內容然后運行流/規則? 這似乎浪費了我的資源。 我是否可以存儲單個知識會話並在Web請求之間共享該會話,同時訪問它,該方案是否可以擴展並且是否是線程安全的(我的猜測是否定的)? 匯集知識會議是一個好主意嗎?

我要求的基本上是否有上述的最佳做法? 文檔和示例雖然非常好,但在這些特定點上並不清楚。

我確實讀過一些關於Drools Grid的東西,不確定這是否能解決我的問題,而且似乎正在開發中。 如果我的問題不清楚,請說出來。

BR Magnus

知識庫是線程安全且重量級的(創建起來並不便宜),因此您可能希望將其保留在應用程序范圍內。

目前,大多數人傾向於使用無狀態架構並為每個Web請求創建StatelessKnowlegdeSession(線程不安全且創建便宜),例如在無狀態會話bean(或者seam / CDI bean或spring bean)中。 但是,如果您具有有狀態EJB的強大功能,那么繼續使用一個StafefulKnowlegdeSession來處理同一對話中的所有請求都是有益的。

我不確定StatefulKnowlegdeSession是否是線程安全的(不要這么認為),所以我提出了一個問題: https//issues.jboss.org/browse/JBRULES-2842

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM