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
|