diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/sidekiq_status/base_middleware.rb | 19 | ||||
-rw-r--r-- | lib/gitlab/sidekiq_status/client_middleware.rb | 5 | ||||
-rw-r--r-- | lib/gitlab/sidekiq_status/server_middleware.rb | 4 |
3 files changed, 24 insertions, 4 deletions
diff --git a/lib/gitlab/sidekiq_status/base_middleware.rb b/lib/gitlab/sidekiq_status/base_middleware.rb new file mode 100644 index 00000000000..3682122e3d5 --- /dev/null +++ b/lib/gitlab/sidekiq_status/base_middleware.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Gitlab + module SidekiqStatus + class BaseMiddleware + # @param [Hash] job the full job payload + def status_enabled?(job) + worker = job['class']&.constantize + + byebug + return worker.sidekiq_status_enabled? if worker&.respond_to?(:sidekiq_status_enabled?) + + true + rescue NameError + true + end + end + end +end diff --git a/lib/gitlab/sidekiq_status/client_middleware.rb b/lib/gitlab/sidekiq_status/client_middleware.rb index bfd5038557d..b69d84531f0 100644 --- a/lib/gitlab/sidekiq_status/client_middleware.rb +++ b/lib/gitlab/sidekiq_status/client_middleware.rb @@ -2,11 +2,12 @@ module Gitlab module SidekiqStatus - class ClientMiddleware + class ClientMiddleware < BaseMiddleware def call(_, job, _, _) status_expiration = job['status_expiration'] || Gitlab::SidekiqStatus::DEFAULT_EXPIRATION - Gitlab::SidekiqStatus.set(job['jid'], status_expiration) + Gitlab::SidekiqStatus.set(job['jid'], status_expiration) if status_enabled?(job) + yield end end diff --git a/lib/gitlab/sidekiq_status/server_middleware.rb b/lib/gitlab/sidekiq_status/server_middleware.rb index 01bc58fd2be..7a2ae99d155 100644 --- a/lib/gitlab/sidekiq_status/server_middleware.rb +++ b/lib/gitlab/sidekiq_status/server_middleware.rb @@ -2,11 +2,11 @@ module Gitlab module SidekiqStatus - class ServerMiddleware + class ServerMiddleware < BaseMiddleware def call(worker, job, queue) ret = yield - Gitlab::SidekiqStatus.unset(job['jid']) + Gitlab::SidekiqStatus.unset(job['jid']) if status_enabled?(job) ret end |