24 lines
		
	
	
		
			613 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			613 B
		
	
	
	
		
			Ruby
		
	
	
	
| module Gitlab
 | |
|   class SidekiqThrottler
 | |
|     class << self
 | |
|       def execute!
 | |
|         if Gitlab::CurrentSettings.sidekiq_throttling_enabled?
 | |
|           Gitlab::CurrentSettings.current_application_settings.sidekiq_throttling_queues.each do |queue|
 | |
|             Sidekiq::Queue[queue].limit = queue_limit
 | |
|           end
 | |
|         end
 | |
|       end
 | |
| 
 | |
|       private
 | |
| 
 | |
|       def queue_limit
 | |
|         @queue_limit ||=
 | |
|           begin
 | |
|             factor = Gitlab::CurrentSettings.current_application_settings.sidekiq_throttling_factor
 | |
|             (factor * Sidekiq.options[:concurrency]).ceil
 | |
|           end
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |