04-07-24 09:58 AM
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
Answered! Go to Answer.
04-07-24 03:11 PM
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:
However, there are scenarios where manually running sessions on specific queue works better:
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.
04-07-24 03:11 PM
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:
However, there are scenarios where manually running sessions on specific queue works better:
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.
04-07-24 04:30 PM
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.
08-07-24 12:14 PM
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
08-07-24 12:40 PM
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
08-07-24 01:47 PM
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.