0

我需要处理这样一种情况:当我的工作记忆在 30 秒内收到 2 个不同的事实时,我会收到通知。然后我希望系统在处理完事实后从工作记忆中删除它们。

例如,假设我想在系统看到 Bob 登录时收到通知,然后他在 30 秒内检查了他的电子邮件。

我知道这听起来很平庸,但是,这是一个概念验证用例,用于非常高级别的演示。

我试过这个:

rule "Bob Login Rule" dialect "java"
when
    Login( username == "bob" ) over window:time(30s);
        UserAction (action == UserAction.CHECK_EMAIL) over window:time(30s)
then
    System.out.println("Bob logged in and checked his email");
end

提前致谢。

4

1 回答 1

1

在这种情况下,您知道 login < check-email 但可能并非总是如此。

$login: Login( $uid: uid ) // a user logs in
$check: UserAction( uid == $uid, action == UserAction.CHECK_EMAIL, this after[0s,30s] $login)

其他不需要 a < b 的运算符可用。

于 2014-02-16T17:03:54.167 回答