[rules-users] Removing facts from statefulknowledgeSession's memory
Wolfgang Laun
wolfgang.laun at gmail.com
Fri Nov 12 05:22:10 EST 2010
Now that I see this code I wonder why you don't simply promote MyFact
to an event?
But, given the current situation, which removes MyEvent facts after 1m,
and assuming that you insert the MyEvent *before* its corresponding
MyFact, you can
rule "fact-without-event"
when
$f: MyFact($entity : entity)
not MyEvent( entity == $entity )
then
retract( $f );
end
and the obsolete MyFact will be gone, too.
-W
On 12 November 2010 11:02, Ayush <ayush.vatsyayan at alcatel-lucent.com> wrote:
>
> Thanks. Actually I did it in different way what I did is I declared my fact
> into drl file as declare MyFact and then I'd added an @expires to it. It
> works fine but now the problem is that for every fact inserted I'd also
> inserted an event for it.
>
> Now as the drl file can be updated by user so say he'd defined expiry time
> for events as 1m and for facts as 10s in this case since I'm using sliding
> window for events and based on this event I'm fetching the fact. So now
> I'll
> be getting the event but facts will not be available as the 2nd fact came
> after 20s hence the rule will not be fired. below is the sample rule.
>
> declare MyEvent
> @role(event)
> @expires( 1m )
> end
>
> declare MyFact
> @expires( 10s )
> end
> rule "MyCorrelation"
> no-loop true
> dialect "mvel"
> lock-on-active
> when
> $E1 : MyEvent( prop1 == 2, $entityA : entity ) over
> window:time(60s) from
> entry-point NotificationStream
> $E2 : MyEvent( this != $E1, prop1 == 1, $entityB : entity )
> over
> window:time(60s) from entry-point NotificationStream
> $F2 : MyFact(this.entity == $entityB)
> $F1 : MyFact(this.entity == $entityA)
> then
> System.out.println("I'm executed successfully");
> end
>
> Now what I want is that I can define the @expires time at a single location
> or I can verify the logic of these rules?
>
> Also if say I'd defined the @expires for event as 10s while in sliding
> window I'm using over:time(1m) then also it is not same.
> --
> View this message in context:
> http://drools-java-rules-engine.46999.n3.nabble.com/Removing-facts-from-statefulknowledgeSession-s-memory-tp1875795p1887987.html
> Sent from the Drools - User mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20101112/278e8b07/attachment.html
More information about the rules-users
mailing list