2012-07-26 23 views
1

我想爲我們的項目之一 - Online Buying and Selling使用drools。使用Drools根據事件執行操作

事件就像買一本書,買筆,買一個kindle。 這些事件存儲在數據庫中。

現在,根據之前發生的事件,我想確定結果。

好比說,如果一個人具有以下序列,

1. Buy a book at a price. 
2. Sell the same book at a higher price. 

然後

Do something based on that. 

如果有人這樣做,

1. Buy a kindle. 
2. Purchase a book in Science Section of books. 

然後

show him the relevant content in the UI. 

我在數據庫中列出了所有事件。 現在我已經編寫了要完成的操作界面,並且我還完成了事件發生時傳遞客戶的界面。

現在,什麼會給我最好的表現來處理事件,並根據事件的順序做出決定。我無法將所有事件都存儲在內存中,因爲我有很多這些事件。

回答

0

有不同的方面來考慮:

  • 對於推薦的其他項目的客戶,也有Recommendation Engines。如果您的用例中的大部分/全部都是建議,您可能需要使用其中的一種。

  • 將「所有事件存儲在內存中」並不是必需的。事實上,Drools刪除了不再與規則庫相關的事件。該documentation

「事件可能在工作記憶在一段時間後自動失效。通常這種情況發生時,基於知識庫中的現行規則,事件可能不再匹配和激活任何規則,儘管可以明確定義事件何時到期。「

  • 要允許早期切除事件,我將使用Drools的生成彙總數據,如「喜歡科學課題」,「擁有電子書閱讀器」等,這些可以從事件中推斷出,但消耗更少的內存。