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@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@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-statefulknowledgeSession-s-memory-tp1875795p1885760.html
>> Sent from the Drools - User mailing list archive at Nabble.com.
>> _______________________________________________
>> rules-users mailing list
>> rules-users@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> _______________________________________________
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>