Raise ScanProfileStatus UpdateWorker concurrency limit
What does this MR do and why?
This MR raises the concurrency_limit on Security::ScanProfileStatus::UpdateWorker from 20 to 200. The limit was added recently in a prior commit to protect against unbounded concurrent execution, but 20 is too low for the current volume of default-branch pipelines, so jobs queue up behind the limit instead of running promptly. The worker only proceeds when the pipeline is on the default branch, takes a per-project exclusive lease, and runs Security::ScanProfileStatus::UpdateService; if the lease is unavailable it reschedules itself in 10 seconds. Raising the ceiling to 200 increases throughput without removing those safeguards: the per-project lease and the defer_on_database_health_signal check on security_scan_profile_project_statuses still bound contention.
Changelog: changed
EE: true
How to set up and validate locally
-
In a Rails console, confirm the new limit is in effect:
Security::ScanProfileStatus::UpdateWorker.get_concurrency_limit # => 200 -
Run the worker spec:
bundle exec rspec ee/spec/workers/security/scan_profile_status/update_worker_spec.rb
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.