Timer Boundary Event (Non Interrupting)

Hi Everyone,

Reaching out to you guys to get a better understanding as to how a Time Bounday Event (Non Interrupting) works? As of now I have this configurgation:

With this configuration, my expectation is that my java class declared as execution listener would be executed R1/PT10S (every 10 secs, up to 1 time). However, what really happens is that it executes once but never again. Can somebody explain this behavior?

My goal is to have my java class executed every 10 secs, at least 1 time.

Thanks!

The specification of timer events follows the ISO-8601 standard. Here are some examples.

Your specification, R1/PT10S, requires that the timer fires every 10 seconds and at most once. So, the observed behavior is correct.

If you change it to R/PT10S, the timer fires 10 seconds with no upper limit. The timer starts, as soon as the activity is enabled. The timer stops, as soon as the activity is completed. If you want the timer to fire at least once, and you know that the activity will take longer than 10 seconds, R/PT10S should work just fine.

Depending on what you want to express, there may be other options. The following enables activity B once in parallel to activity A. For every 10 seconds that pass, an additional instance of B is instantiated:

2 Likes

I think the piece to remember is that timers aren’t intended to “do” anything.

So your execution listener that you are hoping to have run should be moved to a script task connected to the Non-Interrupting timer. (eg. in Box B in @StephanHaarmann 's post)

Timers, much like “Flow Evaluations” (Gateways, Decisions) are process controls, not actual tasks to be completed as part of the process.

2 Likes