cancel
Showing results for 
Search instead for 
Did you mean: 
DominiqueDALLER
Level 5
Status: Reviewed

The scheduler should be improved to make better use of the availability of execution machines, in particular with resource pools.
Due of the current scheduler limitations, any given schedule on a resource pool needs to be updated as soon the number of machines belonging to this pool changes.


To illustrate how the current scheduler is limited, here is an example with a pool of 3 resources and 5 target sessions to run in parallel (session 1 to session 5 below).

Task 1
- Login
- Login
- Login

Task 2
- Robot start notification

Task 3
- Clean resource
- Clean resource
- Clean resource

Task 4
- Session 1
- Session 2
- Session 3

Task 5
- Session 4
- Session 5

Task 6
- Robot end notification

Task 7
- Logout
- Logout
- Logout

With more or less resources, all the tasks except the 2 about the robot notification start and end need to be updated.

A smarter scheduler would specify this:

Task 1 - apply session to all available resources
- Login

Task 2 
- Robot start notification

Task 3 - apply session to all available resources
- Clean execution machine

Task 4 - execute session as soon as an execution machine of the pool is available
- Session 1
- Session 2
- Session 3
- Session 4
- Session 5

Task 5
- Robot end notification

Task 6 - apply session to all available resources
- Logout

This means that the smart scheduler has two options for setting up a task.


First option: it is possible to indicate that the task session must apply to ALL available machines in the resource pool.

In the absence of this option, the session must be artificially duplicated in as many copies as the number of machines in the resource pool, which forces the task to be modified as soon as this number changes.


Second option: it is possible to run the sessions of a task as and when the machines in the resource pool become available. This is also valid if the task is assigned to a single machine.

In the absence of this option, two possibilities:

1) Splitting the target task into artificial tasks (like the first example), each of which includes a maximum number of sessions identical to the number of machines in the resource pool.

==> Very bad solution because if machines are not available, sessions are lost, and if all machines are available, the next artificial task will start only at the end of the session taking the longest time, in other words , machines are unoccupied when they could have been used for executions.

2) Use of a master process, which reads a dedicated queue, each item of which corresponds to a target session. The target session process is executed as a subprocess by the master process. Instead of running the target sessions, we run this master process on all the machines in the resource pool.

==> Better solution, but which requires having to modify the master process whenever you want to change the target sessions. And this solution poses a problem because the Blue Prism logs no longer make it possible to individualize the target sessions.

5 Comments
chris.strong
Staff
Staff

Hello @DominiqueDALLER

 

Thank you for raising, I set the Idea Status to More info as I have some questions to ensure I understand your ask, before setting to Reviewed.

 

Questions:

(I’ll state a solution to test my understanding of your ask) If Blue Prism provided a way to state:

Task 3: Run [3] sessions for process [Clean resource] on any digital workers within [Resource Group]

  1. Q1: Would this give you want you wanted?

  2. Q2: If not, what have I missed?

 

Kind regards

Chris Strong

Senior Product Manager

SS&C | Blue Prism

DominiqueDALLER
Level 5

Hi Chris,

For task 3, this is the same as tasks 1 and 6, as described with option 1. The wished smarter scheduler remove all dependencies related to the number of execution machines of the targeted resource pool. All we need to specify is that the “Clean workstation” process needs to be executed on ALL available execution machines.

If I understand well your proposal, as you state explicitly 3, which is the current number of the execution machines of the targeted resource pool, we still have a dependency which needs to be updated as soon as we add or remove execution machines in this resource pool.

Best regards.

Dominique Dallery

chris.strong
Staff
Staff

Hello @DominiqueDALLER

Thank you for your reply, I previously miss-read and thought you wanted 3 sessions, I’ll try again…

Questions:

(I’ll state a solution to test my understanding of your ask)

If Blue Prism provided a way to state:

Task: Run [5] times the following process chain ( [Login] & [Robot start notification] & [Clean resource] & [Session] & [Robot end notification] & [Logout] ) on [any] digital workers within [Resource Group]

(I've assumed that you wanted to run all process definitions in sequence on the same digital worker (execution machine).

Q1: Would this give you want you wanted?

Q2: If not, what have I missed?

Kind regards

Chris Strong

Senior Product Manager

SS&C | Blue Prism

DominiqueDALLER
Level 5

Hi Chris,

To make me clear :
- the 5 sessions to run in parallel are different processes
- the "robot start notification" and "robot end notification" processes need to be executed only once to notify appropriate users
- the "login", "clean workstation" and "logout" processes need to be executed on each resource belonging to the targeted pool.

I have updated the initial post for a better understanding of this subject.

Best regards.

Dominique Dallery

chris.strong
Staff
Staff

Amazing, thank you for clarifying @DominiqueDALLER

 

This makes sense, I’ve updated the status to Reviewed and it will remain open for further comments from the community.

 

Kind regards

Chris Strong

Senior Product Manager

SS&C | Blue Prism