Add support for using RequestStore within Sidekiq tasks via SIDEKIQ_REQUEST_STORE env variable
This significantly reduces the DB churn in the PostReceive task when it performs reference extraction. See #18663
This commit is contained in:
parent
68162ba900
commit
f4aac77389
3 changed files with 15 additions and 0 deletions
|
@ -4,6 +4,7 @@ v 8.11.0 (unreleased)
|
|||
- Remove magic comments (`# encoding: UTF-8`) from Ruby files !5456 (winniehell)
|
||||
- Fix CI status icon link underline (ClemMakesApps)
|
||||
- Fix of 'Commits being passed to custom hooks are already reachable when using the UI'
|
||||
- Add support for using RequestStore within Sidekiq tasks via SIDEKIQ_REQUEST_STORE env variable
|
||||
- Limit git rev-list output count to one in forced push check
|
||||
- Add green outline to New Branch button !5447 (winniehell)
|
||||
- Retrieve rendered HTML from cache in one request
|
||||
|
|
|
@ -7,6 +7,7 @@ Sidekiq.configure_server do |config|
|
|||
config.server_middleware do |chain|
|
||||
chain.add Gitlab::SidekiqMiddleware::ArgumentsLogger if ENV['SIDEKIQ_LOG_ARGUMENTS']
|
||||
chain.add Gitlab::SidekiqMiddleware::MemoryKiller if ENV['SIDEKIQ_MEMORY_KILLER_MAX_RSS']
|
||||
chain.add Gitlab::SidekiqMiddleware::RequestStoreMiddleware if ENV['SIDEKIQ_REQUEST_STORE']
|
||||
end
|
||||
|
||||
# Sidekiq-cron: load recurring jobs from gitlab.yml
|
||||
|
|
13
lib/gitlab/sidekiq_middleware/request_store_middleware.rb
Normal file
13
lib/gitlab/sidekiq_middleware/request_store_middleware.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
module Gitlab
|
||||
module SidekiqMiddleware
|
||||
class RequestStoreMiddleware
|
||||
def call(worker, job, queue)
|
||||
RequestStore.begin!
|
||||
yield
|
||||
ensure
|
||||
RequestStore.end!
|
||||
RequestStore.clear!
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue