Wolfgang's answer is spot on. Pretend that you are not using an
engine... imagine that you are implementing a java method in a java
application to handle this use case... how would you do it? Either you use
the timestamp at the source or the timestamp at the engine. Either you
execute your actions at 06:00 or you don't... if an event arrives at 06:30,
but was emitted at the source at 05:30, and you already executed the
actions in your java method at 06:00 as you wanted, what will your method
do?
In other words, you can't selectively choose "for this event to use the
timestamp at source, for that event I will use the timestamp at arrival",
or your application will be inconsistent. Wire delays are a common
situation in the real world, so you have to make a decision on how you will
handle then and do it. For the case in the previous paragraph, the usual
approach is to use compensating transactions if necessary.
The engine allows you to do whatever your application would do. This is
a design decision on the use case that has to be taken.
Edson
On Fri, Mar 16, 2012 at 4:17 AM, javadude <sven(a)bighugesystems.com> wrote:
I guess the engine use the insert fact timestamp and not the
annotated
timestamp for the non-existence of a event. Think it would not be easy to
implement the engine, because you need to take care of past and future
events. And for past events, both the events where the trigger did not pass
yet and events where the backdating of the event would make the trigger
already happened...
Would be interesting to hear the opinion of the core developers.
--
View this message in context:
http://drools.46999.n3.nabble.com/Fusion-Insert-passed-events-tp3824630p3...
Sent from the Drools: User forum mailing list archive at
Nabble.com.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @
www.jboss.com