2012-02-17 58 views
0

在我们公司,我们正在评估Drools作为我们产品的框架。 为此,我正在尝试一些实验和明显我现在不堪重负由很多问题。例如,我不知道如何使事件的持续时间条件。 我不知道是否有先进的LHS条件我可以如何运作

+0

请描述'Event'类,以及它应该做什么。 – aitchnyu 2012-02-18 15:31:03

+0

它将用于标记环境中的变化,例如“检测到的存在”或类似情况。当事件持续时间超过规定的时间时,这些事件中的一些必须收回。在以下我的事件类 '// .. jAXB annotationspublic class Event implements Serializable,Equals,HashCode,ToString {... protected EventType type; //i.e。 PRESSURE_ACTIVATED,PRESENCE ... 受保护的列表科目; //i.e。 ERSON,ROOM ... 保护持续时间长; 保护长期发生; ... get和setter返回默认值的情况下为null – 2012-02-19 10:17:35

回答

0

时间类似的东西

.. 
when 
Event(some conditions, duration > 1h) 
then 
... 

非常感谢像任何其他在你的事件类的成员。当你宣布你的活动,你告诉它的成员是持续时间,像这样:

declare VoiceCall 
    @role(event) 
    @timestamp(callDateTime) 
    @duration(callDuration) 
end 

持续时间是以毫秒为单位,所以你会有理由反对它在规则中,像这样:

rule "Call Longer Than One Hour" 
    when 
    VoiceCall(callDuration > 3600000) // 1000*60*60 
    then 
    ... 
end 

Drools的融合manual描述这非常清楚(事实上,我的示例事件声明是直接从它)。

相关问题