cancel
Showing results for 
Search instead for 
Did you mean: 

What are the advantages of using "active queues"?

Ninoseki
Level 3

Hello community,

I am working on developing a process to consume work queue items as quickly as possible.

Rather than scheduling a session that terminates each time all work queue items are processed, I am considering a session that continues to run in the main loop after all work queue items have been processed.

In that case, I am wondering if I should use "active queues" for session management or simply run sessions manually. "Active queues" have features such as specifying a resource group as the execution destination instead of a resource pool, but I have not been able to understand the clear benefits.

I would appreciate it if someone could clarify whether it is necessary to use "active queues" and if there are any clear advantages or disadvantages.

Thank you,
Yusuke Ninoseki

1 BEST ANSWER

Helpful Answers

Hi @Ninoseki ,

For your scenario of developing a process to consume work queue items as quickly as possible with a continuously running session, Active Queues can indeed be useful because of the following reasons:

  1. Active Queues can automatically distribute work items to available resources, which is particularly useful if you scale up your resources to handle increased workload.

  2. By specifying a resource group instead of a resource pool, you can potentially achieve better resource utilization based on the capabilities and availability of specific resources.

  3. As your process grows, Active Queues make it easier to scale by adding more resources without significant changes to your process logic.


However, there are scenarios where manually running sessions on specific queue works better:

  1. If your process is relatively simple and doesn't require complex workload distribution or priority management, manually running sessions might be less overhead.

  2. Manual session management sometimes gives you more direct control over when and how sessions are started, stopped, or retriggered.

  3. If there any dependency on the resource related to applications, consistency or performance reasons, manual assignment might be a much better approach.

  4. Depending on your Blue Prism licensing model, using Active Queues might incur additional costs as multiple runtime sessions would be in use.

The main trade-off that I can see is more related to the setup complexity, control over sessions and potentially higher licensing costs versus the long-term benefits in efficiency, scalability, and manageability.

Unless you have specific reasons to avoid Active Queues (like licensing constraints or very specific resource assignment needs), they seem well-suited to your use case.

---------------------------------------------------------------------------------------------------------------------------------------
Hope this helps you out and if so, please mark the current thread as the 'Answer', so others can refer to the same for reference in future.
Regards,
Devneet Mohanty,
SS&C Blueprism Community MVP 2024,
Automation Architect,
Wonderbotz India Pvt. Ltd.

View answer in original post

5 REPLIES 5

Hi @Ninoseki ,

For your scenario of developing a process to consume work queue items as quickly as possible with a continuously running session, Active Queues can indeed be useful because of the following reasons:

  1. Active Queues can automatically distribute work items to available resources, which is particularly useful if you scale up your resources to handle increased workload.

  2. By specifying a resource group instead of a resource pool, you can potentially achieve better resource utilization based on the capabilities and availability of specific resources.

  3. As your process grows, Active Queues make it easier to scale by adding more resources without significant changes to your process logic.


However, there are scenarios where manually running sessions on specific queue works better:

  1. If your process is relatively simple and doesn't require complex workload distribution or priority management, manually running sessions might be less overhead.

  2. Manual session management sometimes gives you more direct control over when and how sessions are started, stopped, or retriggered.

  3. If there any dependency on the resource related to applications, consistency or performance reasons, manual assignment might be a much better approach.

  4. Depending on your Blue Prism licensing model, using Active Queues might incur additional costs as multiple runtime sessions would be in use.

The main trade-off that I can see is more related to the setup complexity, control over sessions and potentially higher licensing costs versus the long-term benefits in efficiency, scalability, and manageability.

Unless you have specific reasons to avoid Active Queues (like licensing constraints or very specific resource assignment needs), they seem well-suited to your use case.

---------------------------------------------------------------------------------------------------------------------------------------
Hope this helps you out and if so, please mark the current thread as the 'Answer', so others can refer to the same for reference in future.
Regards,
Devneet Mohanty,
SS&C Blueprism Community MVP 2024,
Automation Architect,
Wonderbotz India Pvt. Ltd.

Denis__Dennehy
Level 15

There is an asset on the digital exchange that I can never remember the name of (not a good name) that does what you are after r- maybe someone else on here remembers, otherwise have a search.

Basically it is a parent process that monitors multiple queues for work.  You configure some settings for those multiple queues (SLAs, Priority, etc) which the parent process uses in it's logic to decide which child process/queue it should work first.  The DX is going far too slow for me right now so gave up searching... if I remember it's name I'll come back and post.

Hi @devneetmohanty07 ,

Thank you for your reply.
I understand the benefits and trade-offs of "active queue".

I used "Process Template 2 - Advanced Scenarios" as a reference to create a process that does not immediately terminate the session when the queue item becomes empty. I confirmed that both "active queues" and manual execution work as expected.
I will carefully review the requirements from the user and consider which mechanism to operate under.

Many thanks,
Yusuke Ninoseki

 

Hi @Denis__Dennehy ,

The asset you are referring to is the "Process for Dynamic Resource Manager", isn't it?
I checked the contents and it seems very complicated.
However, I think it contains logic that can be helpful, and I will try to find areas that can be reflected in the process I have developed.

Thank you very much for your reply.

Best regards,
Yusuke Ninoseki

That will probably be it @Ninoseki -  it has a catchy name, no wonder I couldn't find it.
There is a user guide for it but it really is hard work to read - no idea why someone decided to mix languages in a single document and a diagram at the start to show how it all pieces together would be useful.

The digital exchange asset with it's complexity is good if you want your resources to be truly flexible with lots of business processes.  The easier solution if there are only a few solutions you want to run on a few resources is to create a simple 'Parent' process/'Child' processes logic,  where the parent process calls the children depending on some decisions built into the parent about work priorities for the children.  The Parent then looks at what is in the queues and makes the decision about which child has priority.