Timer boundary event misbehaving

I’m trying to periodically check some condition using non-interrupting boundary timer event:

image

This is the timer definition:

 <bpmn:timerEventDefinition>
     <bpmn:timeCycle xsi:type="bpmn:tFormalExpression">R/PT1M</bpmn:timeCycle>
 </bpmn:timerEventDefinition>

Sometimes, the log output is executed once per minute as expected, but most of the times, my delegate is executed 50-150 times in 10 ms intervals.
The behavior is the same when my interval is 5S, 10S, 1M and it also doesn’t matter if I make the cycle unlimited(R/) or limited(Rnn/)

I’ve found a similar post here: Timer boundary event on service tasks but that’s about boundary timer on a service task. Is there any reason why the boundary timer on subprocess is misbehaving?

A timer should not have less than a 1min cycle. The job engine is not setup to handle cycles that that rate. If you search around the forums, you will see many discussions about this. Basically the job executor has buggy behavior for cycles less than 1 min.

2 Likes

Thanks! I’ve tried settings 2 mins and so far so good. But I’m a little scared about this behavior. Is the bug tracked somewhere and/or root cause identified?