cancel
Showing results for 
Search instead for 
Did you mean: 

Queue logic to fire off other processes

john.hammond
Level 6
Good morning all.

We've hit a couple of issues and are looking for potential solutions for them. Here's a brief run-down of our proposed solutions:

 - A 'Queue Size' checker. If a queue hits, say, 200 items, we would like to fire off another process on another machine to multi-bot the queue down. Seemingly this would require some sort of communication with the Blue Prism server to kick off another schedule of some sort (this would involve logging in and then running the process concurrently with the existing machine - or would we require a copy of the process, say a 'Virtual Worker Process 1' and a 'Virtual Worker Process 2' that are to all intents and purposes identical?)

 - Likewise, a 'Queue Fetcher', that checks API endpoints for any content and, if there is any, fires off a process on a different machine. With this in particular, is there any way to 'queue' a process to run after another process has completed in the event that the machine is currently busy?

The cause of these issues is that one process regularly has to deal with peaks and troughs of volume of items, so we're looking into methods of automating the running of these. For the second issue, we have a number of small volume processes that - currently - are run once a day, but it would be better for the business if there was a quicker turnaround period on responses from the Virtual Worker. My current thoughts are that the 'queue fetcher' would have to run on the same machine as the process, based largely off the responses to this thread.

Any help/thoughts would be greatly appreciated.

EDIT: I've read through a few more things on this, and it seems like AutomateC.exe might be able to help with getting the process to run on another machine. I've tried going through the documentation, but does anybody have any detailed guides around how that works and its practical applications?

------------------------------
John Hammond
------------------------------
4 REPLIES 4

PabloSarabia
Level 11
Hi,

Very interesting scenery. 

We have a similar problem in my company. Only have two Digital Workers and many process to execute. In the beginning we use the BP Scheduler to schedule all the execution, but we are starting to see timing and SLA problems. Of course, the robot catches up at night, but we fail in the SLA.

The main problem was that we had defined a series of processes that had to be executed in a cyclic way (i.e. 1 process every 15 minutes). This means that process 1 starts at 00:00, process 2 at 00:15, process 3 at 00:30 and process 4 at 00:45. But... if any of the processes takes more than 15 minutes, the next one will not be executed.

For solving this we decided to create a master process. It manage the rest of the process. And this main process have no end (of course we implement some "stopping request" to kill the session safety). Then we decided to put a limit of item that a process can execute in a cyclic. We manage this limit in two sites: As a session variable, and, inside the master process.

The general idea in this part is give the process some logics to modify this limits, for i.e.... if the process limit is 15 items per cyclic, and I have 80 in the backlog, execute 30 items per cyclic and check the rest of the queues to see if the number of items can be reduced.

This is not a solution, but can give you an idea about how you can transform your process logic.

An interesting topic for further discussion



Bye 🙂

------------------------------
Pablo Sarabia
Architect
Altamira Assets Management
Madrid
634726270
------------------------------

Rambo27
Level 8

Hi, 

Pretty similar problem I faced in our project wherein we have around 7-8 different queue present in one application to get the input for bot to start. 

Its started 8 AM sharp and among all 7-8 queues volumes will jump up and down , which we cant predict . So we did the assessment on volume metric on all queue and we have only 3 Bots to run all the queues. What I did is create a bot balancer concept at in which I prepared the details of machinename, ProcessName ,Priority, VM listed in the notepad and noted all possibility of process as per volume and divide the VM as per the volumes of queue and provide the priority. 

As Pablo explained , I did create one parent process which will just check this config notepad decide which machine had to run which queue and start running accordingly, as and when those queue count are 0 it jumps to next priority given for the current VM thru lookup in config notepad.

Using this parent process and bot balancer concept without any issue used 3 bots across all 7-8 queues all day. 

this is not a solution to your problem, but it will give you some idea.

Ready to discuss more on this further. 



------------------------------
Shikhar Mishra
RPA Lead
Infosys Pvt Ltd
Pune,India
------------------------------
Shikhar Mishra RPA Lead Infosys

ewilson
Staff
Staff
Hi Folks,

You might want to check out the Dynamic Resource Manager solution on the DX. It was designed specifically for helping to distribute work across resources in order to meet SLAs. 

NOTE: It does leverage Interact On-Prem to provide a web-based client though. That may or may not be a non-starter for some.

Cheers,

------------------------------
Eric Wilson
Director, Integrations and Enablement
Blue Prism Digital Exchange
------------------------------

Hi,

This DX Assets looks pretty interesting. I think, the big problem of all "rookies" companies is to optimize the processes and robots, and many times this issues are solving by implementing more Digital Workers.

And, in addition of @Shikhar Mishra's messages, we implement something similar to your notepad configuration but in Access (as front with SQL Server in the back). Just creating a simple forms to change the Session variables values. (And also turn off/on some process if necessary)


Bye :)​​

------------------------------
Pablo Sarabia
Architect
Altamira Assets Management
Madrid
634726270
------------------------------