External Task Processing

Hi,

I use external tasks for off loading interactions with other systems. In the case where there are many external tasks (1000s) waiting to be processed, I don’t want to keep fetching the same set of tasks for retries - this could lead to starvation of other tasks.

According to the API there doesn’t seem to be any way that allows you to specify a subset of tasks. Think of it as similar to a paging function, first 10, next 10 etc. I am not worried that some tasks may move from 1 page to another, I just don’t want to process the same set of tasks repeatedly.

There is some flexibility around topics for example, priority, and lock durations, that I can see, but I would appreciate any suggestions as to a reasonable approach, or perhaps you have already solved the problem :slight_smile:

Thanks, Conor.

Beginning with 7.9.0-alpha2, you can fetch tasks by variable values. Maybe that way you can group your tasks and fetch them accordingly. See https://blog.camunda.com/post/2018/02/camunda-bpm-790-alpha2/ for details.

Cheers,
Thorben

Hi Thorben,

Thanks for the details, its a nice feature. I will have to think about the scenario.

Cheers, Conor.

@thorben any plans for adding a fetch and lock with sorting capabilities? (get most recent 10 tasks?) or get tasks creating between Time 1 and Time 2?

Hi Stephen,

We currently do not have such plans.

Cheers,
Thorben