[rules-dev] Inferred expiration offset: does it really work?
Wolfgang Laun
wolfgang.laun at gmail.com
Fri Nov 12 16:07:15 EST 2010
On 12 November 2010 18:21, Edson Tirelli <tirelli at post.com> wrote:
> Wolfgang,
>
> TypeDeclaration.getExpirationOffset() returns the value of the user
> defined expiration policy:
>
> @expires( 1h )
>
OK...
>
> The final, inferred result is stored in the ObjectTypeNodes
> themselves, as it might be different for different entry points.
>
>
There's no simple way to get at 'em, I suppose. So, as a user, how do I
determine whether my current set of rules implies a finite expiry limit? If
it isn't finite, I'll have to set an explicit @expires; if I do that, it
could be too short...
Much along the lines I have carped in another thread: a "clever" system is
allright, but it must not leave me in the dark about its cleverness.
Getting down to brass tacks: the stable API should provide access to any
data
- set by the user or
- determined by the compiler, and both
- for Java types honed in by DRL declares as well as
- for types declared in the DRL.
Given all that, it might still be useful to have a way of turning the
inferred expiry time off *without* setting an @expires for all types, which
can be done with an @expires(1000000000d) or so). Also, see that hint in a
recent thread about how easy it is to implement a retraction strategy based
on data in the events. One use case I was thinking of was with events (or
even plain facts) having a variable duration attribute, to be retracted at
timestamp+duration.
Wolfgang
> Edson
>
> 2010/11/12 Wolfgang Laun <wolfgang.laun at gmail.com>:
> > I have tried
> >
> > declare EventA
> > @role( event )
> > x : Void
> > end
> > declare EventB
> > @role( event )
> > x : Void
> > end
> > rule "mock-A" # only rule for EventA, EventB
> > when
> > $b: EventB()
> > $a: EventA( this after[0,10s] $b )
> > then
> > end
> >
> > and
> > org.drools.rule.TypeDeclaration tda =
> > (org.drools.rule.TypeDeclaration)rpkg.pkg.getTypeDeclaration( "EventA" );
> > System.out.println( "EventA expires: " + tda.getExpirationOffset() +
> "
> > role:" + tda.getRole());
> > org.drools.rule.TypeDeclaration tdb =
> > (org.drools.rule.TypeDeclaration)rpkg.pkg.getTypeDeclaration( "EventB" );
> > System.out.println( "EventB expires: " + tdb.getExpirationOffset() +
> "
> > role:" + tdb.getRole());
> >
> > which prints
> > EventA expires: -1 role:EVENT
> > EventB expires: -1 role:EVENT
> >
> > Since the DRL code is equivalent to example 2.19 ("correlate orders") in
> > Fusion, this raises the question whether the inferred expiration offset
> is
> > actually computed as described.
> >
> > -W
> >
> >
> >
> > _______________________________________________
> > rules-dev mailing list
> > rules-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-dev
> >
> >
>
>
>
> --
> Edson Tirelli
> JBoss Drools Core Development
> JBoss by Red Hat @ www.jboss.com
>
> _______________________________________________
> rules-dev mailing list
> rules-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20101112/383559af/attachment.html
More information about the rules-dev
mailing list