summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/sidekiq_status/base_middleware.rb19
-rw-r--r--lib/gitlab/sidekiq_status/client_middleware.rb5
-rw-r--r--lib/gitlab/sidekiq_status/server_middleware.rb4
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