Introduction
This example illustrations temporal rules, which are Rules that fire after a given time if they are still true.
Running the Escallation Example
Change into the drools-examples directory and run the Escallation example:
D:\java\workspaces\drools-2.0>maven escalation-java
__ __
| \/ |__ _Apache__ ___
| |\/| / _` \ V / -_) ' \ ~ intelligent projects ~
|_| |_\__,_|\_/\___|_||_| v. 1.0
(bunch of output)
escalation-java:
[java] Using drl: escalation.java.drl
[java] ----------------------------------------
[java] PRE
[java] ----------------------------------------
[java] [TroubleTicket: submitter='bob'; status='NEW']
[java] [TroubleTicket: submitter='dave'; status='NEW']
[java] ----------------------------------------
[java] ----------------------------------------
[java] POST ASSERT
[java] ----------------------------------------
[java] [TroubleTicket: submitter='bob'; status='NEW']
[java] [TroubleTicket: submitter='dave'; status='NEW']
[java] ----------------------------------------
[java] [[ Sleeping 10 seconds ]]
[java] ----------------------------------------
[java] 02:03:39 CET
[java] ** ticket == [TroubleTicket: submitter='dave'; status='NEW']
[java] ** Escalating trouble ticket from NEW to NOTIFIED after 2 seconds
[java] ** ticket == [TroubleTicket: submitter='dave'; status='NOTIFIED']
[java] ----------------------------------------
[java] ----------------------------------------
[java] 02:03:39 CET
[java] ** ticket == [TroubleTicket: submitter='bob'; status='NEW']
[java] ** Escalating trouble ticket from NEW to NOTIFIED after 2 seconds
[java] ** ticket == [TroubleTicket: submitter='bob'; status='NOTIFIED']
[java] ----------------------------------------
[java] ----------------------------------------
[java] 02:03:44 CET
[java] ** ticket == [TroubleTicket: submitter='dave'; status='NOTIFIED']
[java] ** Escalating trouble ticket from NOTIFIED to /dev/null after 5 seconds
[java] ** ticket == [TroubleTicket: submitter='dave'; status='/dev/null']
[java] ----------------------------------------
[java] ----------------------------------------
[java] 02:03:44 CET
[java] ** ticket == [TroubleTicket: submitter='bob'; status='NOTIFIED']
[java] ** Escalating trouble ticket from NOTIFIED to /dev/null after 5 seconds
[java] ** ticket == [TroubleTicket: submitter='bob'; status='/dev/null']
[java] ----------------------------------------
[java] [[ Done sleeping ]]
[java] ----------------------------------------
[java] POST SLEEP
[java] ----------------------------------------
[java] [TroubleTicket: submitter='bob'; status='/dev/null']
[java] [TroubleTicket: submitter='dave'; status='/dev/null']
[java] ----------------------------------------
BUILD SUCCESSFUL
Total time: 27 seconds
Finished at: Mon Mar 21 02:03:47 CET 2005
Understanding the Escallation Example
If the submitter of a new ticket is "bob" then set the ticket to notified straight away:
Any new tickets should be given a duration of 2 seconds and if the rule is still true after that period then set the ticket to notified and print helpfull information.
This rule escalates tickets with the notified status after 5 seconds and prints helpfull information.
Labels:
