question

Tomislav F. avatar image
Tomislav F. asked ·

Order of Script Execution on same Robot?

Hello,

Where can I find out in what order multiple scripts will be executed on the same Robot?

I have checked all hidden columns in the Synthetic Console after deploying a script. There is a column "Last Start Time" in the Deployment View. After a few executions, one could infer the sequence by comparing the timings in this column. Another way would be to simply watch the actual script executions on a Robot. The Synthetic Monitoring Tray icon on the bottom right corner of an agent gives an indication of what single script will run next, but not the full order of multiple scripts. I am looking for a way to determine in what order the scripts will be executed on one Robot.

If there is such a view, is it possible to change the execution order of multiple scripts on the same Robot?

Best regards

Tomislav

esm
1 comment
10 |2000000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

I think I found the answer to my second question of how to influence the execution order => "Group Tasks" as explained here

However, if there are no Group Tasks configured, it would still be interesting to know the execution order.

0 Likes 0 · ·
Ernest J. avatar image
Ernest J. answered ·

I would also point out that you can set the priority assigned to the task itself, without having to create a group. In the task configuration you can change the priority to a different level (Low, Medium,High); please refer to Modifying a Task. For absolute control of the sequence you would need to use group tasks.

Share
10 |2000000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

Luke B. avatar image
Luke B. answered ·

I've found in our environment the execution order seems to be influenced by two factors: the task priority (High to Low) and the estimated execution time for the task (lowest to highest). I think the intention is that if a robot will end up running out of time before the next interval, it will prioritize getting the most tasks done (of course completing all higher priority tasks first). I'm not sure what happens in the event of a tie, but it might be sorted by the time that the task was first created (or the internal task ID).

A hypothetical example follows:

Task Name Priority Execution Time Task Order
Task 2 High 2 1
Task 4 High 3 2
Task 6 Medium 2 3
Task 7 Low 1 4
Task 1 Low 2 5
Task 5 Low 2 6
Task 3 Low 3 7
1 comment Share
10 |2000000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

Thanks Luke, this was very useful. We have one agent that is basically overloaded with tasks at the moment, and I've noticed some tasks are only executed about every 2 hours, even though the setting is every 20 minutes. All the priorities are "High", so it appears that some of them are skipped often due to the long execution estimations. Looks like I need to define a group task until a 2nd agent is deployed to handle the load.

0 Likes 0 · ·
Ernest J. avatar image
Ernest J. answered ·

1) You will want to leave your tasks and subtasks enabled

2) In the console open up the agent configuration. Under the performance tab what do you have selected for Tasks?

You will want to have 'Wait until the previous task finishes.

Agent Performance Tab

Thanks

Share
10 |2000000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

Kalle L. avatar image
Kalle L. answered ·

Hi,

A few questions to those who've used group tasks. Am I supposed to leave the original tasks (also defined as subtasks in the group) enabled, as they are? Will the subtasks also be executed at their scheduled time, if there's a time slot available? What I mean is; Task abc is set to run every 5 minutes at medium prio... but it's also a subtask in a group with high prio that's executed every 20 minutes. Is it then only executed as part of the group, or is the 5 min interval also active, if there's idle time?

I got my group task to work, but there was sometimes a 10 minute delay between executions as the monitoring happened to take a bit longer and it passed the "optimal" time, so it had to wait a while for the next execution. I tried to get rid of these waits by changing the group's interval to 5 minutes (from 20 minutes), even though the estimated time was 19 mins. What happened was no tests were executed, at all. Eventually I had to delete the group, undeploy all tasks and redeploy them in order to wake up the agent.

So what would be the configuration to have a group task running continuously, i.e. as soon as the previous execution set ends, the next one is started? I'd like to get rid of those 10 minute idle waits...

Br,

Kalle

Share
10 |2000000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.