cancel
Showing results for 
Search instead for 
Did you mean: 
Walter.Koller
Level 11
Status: New

It took us some time to understand the intention behind how Active Queue works and I think there are options for improvements that greatly enhance AQs.

The ideas is to enable continuous processing triggered by new queue items and without occupying a runtime resource al the time while doing nothing.

Short summary on how AQ currently work (please see documentation for general description):

The assigned processes have to have a Poll loop that keeps the process active all the time even when there are no queue items available. This is necessary since the runtime resource is removed from the Target Resource definition when the process stops.

Various AQ can share the same Resource Group and resources can be assigned by de-/increasing the number of Target Resources and AQ will take care of starting the correct processes.

The ideas for improvements:

  • Most important: AQ Target Resource definition does not decrement when a process stops working but stays as it was defined. This removes the need of the empty Poll loop but processes are started by AQ when needed. (And does not use a license for just polling and waiting)
  • Nice to have: Adding thresholds for parallel processing. Something like 'active one resource for each x numbers of items'. Meaning, if x=100, one resource should be used if there are less than 100 items in the queue. If there are <200 two resources should be used and with <300 three resources asf. This will increase efficiency for low amount of processes and very quick processes. Instead of spawning the process, opening the applications, possible login, or navigating to the correct windows... the resources with all the technical basics already done can focus on business related steps.
  • Nice to have: Assign Target Resources dynamically. This could be in combination with the parallel processing idea. Here the point is to set a min / max Target Resource value. min would set the number of resources being reserved for this AQ. Although there might no process running on this resource, it will not be used for other processes to ensure the queue will never be blocked completely. max sets the max number of concurrent processes of this queue running in parallel.
  • Nice to have but tied to the prev point: Dynamic assignment of Resource Groups. The idea is to allow the total number of max Target Resources be greater than the actual available resources. With resources are made available again when there is nothing to process this setting would create an automatic dynamic assignment of resources for most efficiency. All resources not claimed by an AQ (Target Resource min setting) are moved to a common pool. AQ takes resources from this pool in peak times and returns them at off-peak times, making them available for other AQ.
  • Nice to have but tied to the prev point: AQ prioritization. In times when several queues are processed and there are not enough resources to meet their max Target Resources demands, the AQ with the highest prio should create an event to a lower prio AQ to free a resources. This freed resource then can be claimed by the higher prio queue.

The first point is the most important one that would enable a lot of customers the use of Active Queues.