summaryrefslogtreecommitdiff
path: root/lib/gitlab/patch/sidekiq_client.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/patch/sidekiq_client.rb')
-rw-r--r--lib/gitlab/patch/sidekiq_client.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/gitlab/patch/sidekiq_client.rb b/lib/gitlab/patch/sidekiq_client.rb
new file mode 100644
index 00000000000..2de13560cce
--- /dev/null
+++ b/lib/gitlab/patch/sidekiq_client.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Patch
+ module SidekiqClient
+ private
+
+ # This is a copy of https://github.com/mperham/sidekiq/blob/v6.2.2/lib/sidekiq/client.rb#L187-L194
+ # but using `conn.pipelined` instead of `conn.multi`. The multi call isn't needed here because in
+ # the case of scheduled jobs, only one Redis call is made. For other jobs, we don't really need
+ # the commands to be atomic.
+ def raw_push(payloads)
+ @redis_pool.with do |conn| # rubocop:disable Gitlab/ModuleWithInstanceVariables
+ conn.pipelined do
+ atomic_push(conn, payloads)
+ end
+ end
+ true
+ end
+ end
+ end
+end