External Task Service and Timer Boundary Event

Hi,

My goal is to have a timer boundary event for an external task service (in modeler, implementation is External).

Something similar as mentioned in below posts.

  1. Timer Boundary Event not called - #2 by Niall
  2. Testing a boundary timer - #13 by ankur.sethi
  3. Timer boundary event on service tasks - #7 by thorben

Configured the timer as

Timer Definition Type: Duration
Timer Definition: R3/PT10S

Timer get activated but it never stops. External task services keeps getting called.

I am expecting it to activate 3 times after every 10 secs.

Is there some other configuration needs to be done or something needs to be done in external task service?

My external task service workers configuration is covered here

External Task Retry Java - #4 by rawat

Thanks

Can you upload your model.
Also - can you explain on more detail what you expect to happen when the timer is triggered? If your intention that the External Task is interrupted or not?

@Niall

Have uploded them model forum_sample.bpmn (5.8 KB)

Timer is getting triggered and external task do gets interrupted but retries never stops.

Probably I am using it in a wrong way or there is some other way of achieving as depicted in the model?

You are a bit, yes :slight_smile:
Whats happening is that the timer is interrupting the task then when it reactivates the task it resets the timer again.

What functionality exactly are you trying to achieve with this pattern. maybe there’s a better way of implementing what you want.

1 Like

Thank you for confirming it :). I knew it… something is wrong…

Goal: How to make external task retry for specified duration and once all retries exhaust either stop or raise incident.

Now above goal I was able to achieve via external task handle failure function and decrementing the retries. Covered here External Task Retry Java. (Although it works but have some doubts on its behavior posted there)

I was thinking if I achieve something similar via the model declaration which you already saw.

  1. There are two external tasks… the 2nd external tasks is pushing message to a queue say A and doesn’t complete the external task.

  2. 3rd Party application picks from queue A and process. After processing, it inserts the response to some other B.

  3. My application picks message from queue B, if its success then complete the external task else do nothing.

  4. After 10 seconds timer will fire and cycle continues till retries exhaust.

Would this be retrying after a failure of some kind?
If you want to get an idea about dealing with different kinds of failures maybe take a look that this tutorial and then see if something in there relates to what you’re looking for

Would this be retrying after a failure of some kind?

Yeah but failure happens asynchronously.

If you want to get an idea about dealing with different kinds of failures maybe take a look that this tutorial and then see if something in there relates to what you’re looking for

Thank you for sharing the link. I will go through this tutorial and will update once finished.