summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaco Guzman <pacoguzmanp@gmail.com>2016-07-01 12:43:48 +0200
committerPaco Guzman <pacoguzmanp@gmail.com>2016-07-01 12:43:48 +0200
commit98e8189598964dde17b18712781b6a6c17cb84e7 (patch)
treee260c468b502909599e1b18f431ef4a4d171592e
parentab81ea1e8177742a0dfed2c7cf922bb03a8b6c51 (diff)
downloadgitlab-ce-sidekiq-plus-request-store.tar.gz
Enable RequestStore on Sidekiq workerssidekiq-plus-request-store
-rw-r--r--CHANGELOG1
-rw-r--r--config/initializers/sidekiq.rb1
-rw-r--r--lib/gitlab/sidekiq_middleware/request_store.rb13
3 files changed, 15 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 4b754c2aba3..3543fc63e6d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -21,6 +21,7 @@ v 8.10.0 (unreleased)
- Allow importing from Github using Personal Access Tokens. (Eric K Idema)
- Fix user creation with stronger minimum password requirements !4054 (nathan-pmt)
- PipelinesFinder uses git cache data
+ - Enable RequestStore on Sidekiq workers
- Check for conflicts with existing Project's wiki path when creating a new project.
- Remove unused front-end variable -> default_issues_tracker
- Better caching of git calls on ProjectsController#show.
diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb
index 593c14a289f..29ca612422f 100644
--- a/config/initializers/sidekiq.rb
+++ b/config/initializers/sidekiq.rb
@@ -5,6 +5,7 @@ Sidekiq.configure_server do |config|
}
config.server_middleware do |chain|
+ chain.add Gitlab::SidekiqMiddleware::RequestStore if ENV['SIDEKIQ_REQUEST_STORE']
chain.add Gitlab::SidekiqMiddleware::ArgumentsLogger if ENV['SIDEKIQ_LOG_ARGUMENTS']
chain.add Gitlab::SidekiqMiddleware::MemoryKiller if ENV['SIDEKIQ_MEMORY_KILLER_MAX_RSS']
end
diff --git a/lib/gitlab/sidekiq_middleware/request_store.rb b/lib/gitlab/sidekiq_middleware/request_store.rb
new file mode 100644
index 00000000000..997d8e2ba76
--- /dev/null
+++ b/lib/gitlab/sidekiq_middleware/request_store.rb
@@ -0,0 +1,13 @@
+module Gitlab
+ module SidekiqMiddleware
+ class RequestStore
+ def call(worker, job, queue)
+ ::RequestStore.begin!
+ yield
+ ensure
+ ::RequestStore.end!
+ ::RequestStore.clear!
+ end
+ end
+ end
+end