Improve async pipeline processing
What does this MR do?
Make to queue much less PipelineUpdateWorker's and improves efficiency of PipelineProcessWorker's, but also reduces a number of queued.
For PipelineProcessWorker it moves locking into for a build to make it no-locking if no-op happens.
Are there points in the code the reviewer needs to double check?
Why was this MR needed?
Screenshots (if relevant)
Does this MR meet the acceptance criteria?
- CHANGELOG entry added
- Documentation created/updated
- API support added
- Added for this feature/bug
- All builds are passing
- Conform by the merge request performance guides
- Conform by the style guides
Branch has no merge conflicts with
master(if it does - rebase it please)
- Squashed related commits together