Do inline project authorizations refresh only when there is a single element
What does this MR do and why?
This is the continuation to the effort in !90495 (merged), by which we are trying to move away from running project authorizations refresh jobs in an inline, waiting manner - ie, we do not want these refresh jobs wait on the request on Puma. We want to reach a state where all refresh jobs are executed purely in Sidekiq, with no waiting on the request.
!90495 (merged) was the first step towards this, and with that the current state is:
- jobs with 1 to 3 arguments - processed inline, along with the request.
- jobs with 4 to 100 arguments - processed via Sidekiq, and does not wait. (this behaviour is behind th
async_only_project_authorizations_refresh
feature flag, which is now 100% enabled on production) - jobs with greater than 100 arguments - processed via Sidekiq and does not wait.
With this MR, we are going a step further, and making this:
- jobs with 1 argument - processed inline, along with the request.
- jobs with 2 to 3 arguments - processed via Sidekiq, and does not wait. (this behaviour is behind the
inline_project_authorizations_refresh_only_for_single_element
feature flag.) - jobs with 4 to 100 arguments - same as existing behaviour, as described above. (ie, processed via Sidekiq, and does not wait.)
- jobs with greater than 100 arguments - same as existing behaviour, as described above. (ie, processed via Sidekiq, and does not wait.)
Screenshots or screen recordings
These are strongly recommended to assist reviewers and reduce the time to merge your change.
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.