[ ] Affected Issues have been mentioned in the Closing issues section
[ ] Documentation has been written/updated
[ ] PR title is ready for changelog and subsystem label(s) applied
Refactoring build queue process to reduce the amount of times that events trigger actions when QoS is enabled.
There were points in the event cycle where when a build completes, it would pick an item from the queue, but if there was also a pending build in the namespace that triggered the event, it would start a build in that namespace too. This allowed clusters to exceed the QoS limit.
This also introduces some additional changes to the way the queue is handled with the sorting function working as it should now by sorting by priority and creation time, and also allows events to trigger period updates of the pending items in a blocking operation
Checklist
Refactoring build queue process to reduce the amount of times that events trigger actions when QoS is enabled.
There were points in the event cycle where when a build completes, it would pick an item from the queue, but if there was also a pending build in the namespace that triggered the event, it would start a build in that namespace too. This allowed clusters to exceed the QoS limit.
This also introduces some additional changes to the way the queue is handled with the sorting function working as it should now by sorting by priority and creation time, and also allows events to trigger period updates of the pending items in a blocking operation