>>Another approach would be to have each robot set its own lBusy to False if it encounters an error, and stop processing.
>
>Yes, they have.
>
>>If the robots run as services they should be fault-tolerant, you probably already have good exception handling in place.
>
>But, a robot doing thousands and thousands of lines of processing in a loop, having started to move files from here to there, and things like that, is not a situation I can afford to break.
If it starts, it has to finish.Bolding mine - in the general case you can't rely on that. There could be hardware failure, power outage etc. If you truly need that, you may need to implement a form of two-phase commit, so you can either roll back work that has been done, or complete interrupted jobs.
Regards. Al
"Violence is the last refuge of the incompetent." -- Isaac Asimov
"Never let your sense of morals prevent you from doing what is right." -- Isaac Asimov
Neither a despot, nor a doormat, be
Every app wants to be a database app when it grows up