cancel
Showing results for 
Search instead for 
Did you mean: 

Multi-bot Coordination

NickZejdlik
Level 4
I'm looking into an automated solution for controlling my company's processes. The main issue is that sometimes one bot ends up doing a lot of work while the others remain idle. I'd like to be able to have the idle bots processing other items, and switch to other processes as new items come in, as opposed to using the scheduler. While I already have an idea of how to build such a solution, I was wondering if there are any documents or articles about this kind of thing. I didn't come across anything when searching, but I wanted to double check before I attempt to reinvent the wheel. If this is too vague of a request or if more details would help, please let me know.
5 REPLIES 5

SyedRaza
Level 4
Hi, Are you using resource pools concept of Blue Prism, if not implement Resource group (resource pools) concept where set of resource shares the same process. if you want resource to be switched from one process to another process than we have to schedule process based on peak time and allot resources as per business needs.

John__Carter
Staff
Staff
Nick - it's a broad topic but will try to help. Using work queues is a must, so that you can have multiple instances working from the same queue. And environment locks enable you to control any 'one at a time' steps within the process logic. Apologies if you know this already but sometimes the basics are overlooked. https://portal.blueprism.com/documents/blue-prism-solution-design-overview Using sub-processes is another idea, where if sub-process A has nothing to do, the parent process runs sub-process B. Lastly, there is the option of making asynchronous calls via the command line, or in plainer English, creating a process that uses the command line to run processes on other machines. You're right in that this isn't well documented, mainly because it's not standard practice. When Active Queues comes to full fruition I think it will provide more of this kind of functionality 'out of the box' but for now you have to invent the wheel. The fundamental idea is that process A uses the command line to run process B (on another machine if necessary). The command line outputs the session ID of B, which A can keep hold of to monitor B's progress. Here at BP Professional Services we'll be working on ways to explain this better, hopefully with working examples, so watch this space.

NickZejdlik
Level 4
Thanks for the responses. I read through that article again, since as you say, the basics are sometimes overlooked. Thankfully we've been keeping to the guidelines for a pretty well since we had this in mind to begin with; everything is in work queues and processes that feed data in are lock protected, along with ensuring a data source doesn't get imported twice. I have looked into resource pools, and, while useful for running multiple processes on a set of machines, they still have the issue with idling while one process has a lot of work. Having a parent process is an interesting thought, though it would mean having to modify the parent process whenever new processes are added (unless not understanding the idea correctly). In regards to the command line method, are there options in AutomateC.exe to trigger a process on another resource, or did you mean executing it on remote machines via psexec or some other similar command? I didn't find anything in the Command Line Options help page, though I may have overlooked something. The other method that came to my mind is using the http interface, but if I can do the same via command line it would ultimately be easier.

John__Carter
Staff
Staff
Hi Nick - yes I meant AutomateC. Look again in the Help and you'll see that you can do AutomateC.exe /run ""Your Process"" /resource ""PC123456"" /user ""Nick"" password

NickZejdlik
Level 4
Thanks John. I guess Friday evenings is a bad time for me to try to read documentation. I gave it AutomateC a whirl and it looks like it'll work great for my purposes.