cancel
Showing results for 
Search instead for 
Did you mean: 

Tagging Mechanism to tag different items in a queue so that it can be distributed to different VMs

Anonymous
Not applicable
Hello Team, We wanted to execute 1 process on a multiple virtual machine (VM) at the same time to distribute the load at Queue level. for example. 1) there is 1 process (P1) and 3 VMs 2) We have to process 10000 items on VM1, 5000 items on VM2 and 8000 items on VM3 3) How can we tag first 10000 items as VM1 in the Queue and Second 5000 items as VM2 in the Queue and thirst 8000 items as VM3 in the Queue to distribute the records across different VMs. Please advice the best approach. Regards,
4 REPLIES 4

Deep.Shah
Level 6
Hi Satish, There could be different approaches to manage load distribution according to the Business Process constraints and requirements, but if you are wanting a distribution based on Volume/Number of Items in the Queue only, then a simple technique could be creating a configurable Parameter for Max Items that can be handled by a Session. You could do this by creating a ""Max Items Count"" Variable as either a 1. Startup Parameter Or 2. Session Variable The value of this variable will tell each session how many cases it should handle at most. Regards, Deep Shah

Anonymous
Not applicable
Hi Deep, Thanks for the prompt reply!! Basically we have to distribute the records over multiple VMs. For example, I have 30K records in total and I have to distribute them amongst VM1(to process 5k), VM2(to process 10k records) and VM3(to process 15K records). What is the best approach in Blue Prism to achieve the same? Thanks & Regards, Satish Agrawal

Anonymous
Not applicable
While building the queue, you could tag the items with the machine name (randomly with a probability that corresponds to the distribution that you want) and then use the the tag filter feature of the Get next Item aciton in the Internal - Work Queues BO when you retrieve the cases from each VM. To find out which machine is running the process, use Environment.MachineName (see Get Credential Name in Login Agent BO, if you don't know how to use this).

John__Carter
Staff
Staff
Why not just have the process count how many items it has worked, then after each item put in a check that says 'IF (PC=VM1 AND Count=5000) OR (PC=VM2 and Count=10000) OR (PC=VM3 AND Count=15000) THEN stop ELSE continue'. You'd probably also want to use environment variables to avoid hardcoding machine names into the process logic.Alternatively use a start up parameter to dictate how many items a session should work.If the reason you want each machine to do different amounts of work is to do with scheduling, then you could assign different stop times to each machine, eg PC1 stops after 3 hours, PC2 after 6, PC3 after 9.