Greg Trasuk wrote:
...
What would you propose to do in case of a "catastrophic" Throwable? System.exit()? Is that up to TaskManager to decide? Again, I'd say if
the task author has some reasonable action in mind, let them catch the
Throwable and take their action.
...

I'll keep the current functionality for now. It does allow maximum flexibility to task authors. However, I reserve my question about the issue as a matter for task authors - the ones I have read so far do not catch Throwable in their run methods.

Several customers have, over the years, beat into my head the understanding that a crash is better than a wrong answer. That is particularly the case for a redundant service.

Meanwhile, I have a question about a related issue. If a Task runAfter method throws anything it is logged and TaskManager acts as though runAfter had returned false, indicating no dependencies.

That is the high performance but high functional risk option. It may create low frequency, hard to reproduce, timing bugs, my least favorite type of bug.

An alternative would be to make the task wait for completion of all older tasks. That is worse performance but much safer.

Thoughts?

Patricia

Reply via email to