Robot Traffic w/ Long Process Times

Hello humans.

I am curious if anyone has thoughts or ideas on how to best manage robot traffic without adding more robots to the pool (which is only a temporary fix).

So I was in the office today (a quiet office the weekend after Christmas)…
it was about 9 AM…

I creepily look in on Orchestrator to have a looksie (as I do often)…
and monitor any robot events that concern me or my team,

and what do I see?.. something so paralyzing, I sat there dumbfounded…
staring into the nothingness of what was and what should not be;
—it’s every RPA-goers’ worst nightmare!

All production robots had “scheduled” jobs running on them!


“Running”,“Running”,“Running”… it’s like the opening to an old B horror film

Let us assume that project design best practices were not the problem and that each process does efficiently take 1-2 hours to complete.

Let us also assume that we are restricted to 8-10 robots in production and that more will not be added at this time.

So, what do you think is the best approach to managing robot traffic, in order to avoid a scenario where jobs with longer completion times are taking up all available robots in the environment?

Is one idea to have a different environment in Orchestrator for longer completion times, so they can only use for example 8 of the 10 robots, rather than using up all 10? Then, use a different environment that utilizes all 10 for shorter process times? However, then you would likely cause a slight backlog of jobs that have longer process times. The trade-off is that you always have available robots for adhoc and shorter runtimes.

Another idea is for UiPath to add a feature where you can schedule jobs to use any robot but keep one (or specified number of) robot(s) available.

Note: this is currently being managed through version 2018.2.3, so there could be some added features in 2018.4 that I am not aware of.

So please post and discuss any ideas or thoughts you have on this topic.




Hi Clayton,

We are managing robot traffic by creating an Asset (Value per Robot) with process codes, which looks like below.

Each bot will trigger the processes based on the order of sequence in the asset. This way we can control the priority of the processes and make bots available for all the processes.

Hope this helps in your scenario.


1 Like

That’s interesting. I would like more details so I understand.

Does that need to be edited or managed everytime a new project is deployed? or is it a code that is on the process name when you provision it?

How does it know which robot to run the job in order to keep available robots, and how does it know which Asset to read?

We are using the “NumberOfRobots = 1” setting in Orchestrator, because I believe that using Specific robots causes all kinds of problems. So if we want Orchestrator to automatically choose an available robot, does your system work with “NumberOfRobots” or is it more relying on another setting.

Just curious.


Asset need to be edited to include new project code for BOTs.

Our main design objective is that all available BOTs should work on all the processes. So we have not used “Number of Robots” concept.

We created two processes, Process1 will load Queues for all the processes and Process2 works on queue items for all the processes. one BOT runs Process1 and remaining BOTs run Process2.

Process1 and Process2 to reads the asset value and invokes respective process workflows.

1 Like