Class: Gitlab::SidekiqMiddleware::Client
- Inherits:
-
Object
- Object
- Gitlab::SidekiqMiddleware::Client
- Defined in:
- lib/gitlab/sidekiq_middleware.rb
Class Method Summary collapse
-
.configurator ⇒ Object
The result of this method should be passed to Sidekiq’s ‘config.client_middleware` method eg: `config.client_middleware(&Gitlab::SidekiqMiddleware::Client.configurator)`.
- .middlewares ⇒ Object
Class Method Details
.configurator ⇒ Object
The result of this method should be passed to Sidekiq’s ‘config.client_middleware` method eg: `config.client_middleware(&Gitlab::SidekiqMiddleware::Client.configurator)`
37 38 39 40 41 |
# File 'lib/gitlab/sidekiq_middleware.rb', line 37 def self.configurator ->(chain) do middlewares.each { |middleware| chain.add(middleware) } end end |
.middlewares ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/gitlab/sidekiq_middleware.rb', line 8 def self.middlewares [ # ConcurrencyLimit::Resume needs to be first and before Labkit and ConcurrencyLimit::Client ::Gitlab::SidekiqMiddleware::ConcurrencyLimit::Resume, ::Gitlab::SidekiqMiddleware::WorkerContext::Client, # needs to be before the Labkit middleware ::Labkit::Middleware::Sidekiq::Client, # Sidekiq Client Middleware should be placed before DuplicateJobs::Client middleware, # so we can store WAL location before we deduplicate the job. ::Gitlab::Database::LoadBalancing::SidekiqClientMiddleware, ::Gitlab::SidekiqMiddleware::PauseControl::Client, ::Gitlab::SidekiqMiddleware::ConcurrencyLimit::Client, # NOTE: Everything from DuplicateJobs::Client to DuplicateJobs::Server must yield # no returning or job interception as it will leave the duplicate job redis key # dangling and errorneously deduplicating future jobs until key expires. ::Gitlab::SidekiqMiddleware::DuplicateJobs::Client, ::Gitlab::SidekiqStatus::ClientMiddleware, ::Gitlab::SidekiqMiddleware::AdminMode::Client, # Size limiter should be placed at the bottom, but before the metrics middleware # NOTE: this raises error after the duplicate jobs middleware but is acceptable # since jobs that are too large should not be enqueued. ::Gitlab::SidekiqMiddleware::SizeLimiter::Client, ::Gitlab::SidekiqMiddleware::ClientMetrics, ::Gitlab::SidekiqMiddleware::Identity::Passthrough ] end |