There isn't much support Drools provides for this. The listener tells you
about
a new Fact being inserted, and then - what? Unless you are satisfied with
a constant expiry offset, or define expiry times by a Map<Class<?>,Long>
or implement getExpiryOffset in all of your classes, you don't know *when*
to retract.
You can define @expires(...) on a declare even when the @role is not
"event",
but getting at this value isn't simple; you have to use the unstable API
org.drools.definitions.impl.KnowledgePackageImp rpkg =
(org.drools.definitions.impl.KnowledgePackageImp)kBase.getKnowledgePackage(
"some.package" );
org.drools.rule.TypeDeclaration td =
(org.drools.rule.TypeDeclaration)rpkg.pkg.getTypeDeclaration( "FactTYpe" );
System.out.println( "Expires: " + td.getExpirationOffset() );
It's difficult to accept why features which are part of the established user
interface are not accessible via the stable API.
As an aside, notice that the Expert manual teaches me to add metadata to a
Java-defined class:
declare org.drools.examples.Person
@author( Bob )
...
end
Great, and Bob's your uncle! How do I retrieve this author metadata?
Regards
Wolfgang
2010/11/12 Michael Anstis <michael.anstis(a)gmail.com>:
A time based eviction queue is simply a queue that evicts its content
based
upon time-based heuristic. So the WorkingMemoryEventListener would
store
facts inserted into the WorkingMemory in an internal queue and evict them
from that queue based upon some time-based heuristic. You could use an
Executor (ScheduledExecutorService) etc to remove facts from the queue and
working memory at set intervals.
With kind regards,
Mike
On 11 November 2010 22:31, Ayush <ayush.vatsyayan(a)alcatel-lucent.com>
wrote:
>
> Can you please elaborate on "Have it store each inserted object in a
> time based eviction queue and it'll remove things for you." i.e. how can
I
> do it?
> --
> View this message in context:
>
http://drools-java-rules-engine.46999.n3.nabble.com/Removing-facts-from-s...
> Sent from the Drools - User mailing list archive at
Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users