I have an unattended process that is scheduled to run each hour. It will dynamically be allocated to a computer that is available.
If the job is not finished within this hour, then another job is started simultaneously on another computer. Because of limitations within the automated software, this could lead to unwanted behaviour.
Are there any settings in Orchestrator that could prevent this, or do I need to develop some custom logic for this?
I could run this process on a dedicated computer, but it is not an optimal solution.
You have a Job dynamically allocated to multiple bots and it’s scheduled to execute every hour based on a time trigger. If the execution extends more than to 1 hour in a machine another trigger is started and new process gets start in another machine. I hope you need to stop this execution in the second machine. Correct if I’m wrong.
Here can you determine a maximum time period for the execution to complete and based on that you can schedule the job. Maybe every 1 hour 30 minutes.
Else You can go with a Queue based trigger. A dispatcher can add the items to the queue and whenever new items are getting added to the queue, the processor will get execute.
A queue based trigger won’t do it for me without writing some hackish code.
I have read the solution where I determine a maximum time period, but I have concluded before that this would not work. But while trying to explain you why, something told me to check the documentation.
And the documentations says: “Note : The amount of time specified here elapses according to the specifications, even if the job is queued. For example, if you schedule a job to run at 1 p.m. and set it to stop after 20 minutes, the job stops at 1:20 p.m. even if it had stayed in a queue until 1:15 p.m., and then started.”