diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-24 12:09:01 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-24 12:09:01 +0000 |
commit | 2c2dd5e36c4ed5f09f488be288882d98f9124d12 (patch) | |
tree | ad4c478bb1c588387a881b26a7db7c3237b9d4f3 /app/workers/concerns | |
parent | 2ff184ad761fbfbe25a3d827c8f704349963a8d2 (diff) | |
download | gitlab-ce-2c2dd5e36c4ed5f09f488be288882d98f9124d12.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/workers/concerns')
-rw-r--r-- | app/workers/concerns/application_worker.rb | 1 | ||||
-rw-r--r-- | app/workers/concerns/cronjob_queue.rb | 1 | ||||
-rw-r--r-- | app/workers/concerns/worker_context.rb | 27 |
3 files changed, 29 insertions, 0 deletions
diff --git a/app/workers/concerns/application_worker.rb b/app/workers/concerns/application_worker.rb index 62748808ff1..733156ab758 100644 --- a/app/workers/concerns/application_worker.rb +++ b/app/workers/concerns/application_worker.rb @@ -9,6 +9,7 @@ module ApplicationWorker include Sidekiq::Worker # rubocop:disable Cop/IncludeSidekiqWorker include WorkerAttributes + include WorkerContext included do set_queue diff --git a/app/workers/concerns/cronjob_queue.rb b/app/workers/concerns/cronjob_queue.rb index 0683b229381..25ee4539cab 100644 --- a/app/workers/concerns/cronjob_queue.rb +++ b/app/workers/concerns/cronjob_queue.rb @@ -8,5 +8,6 @@ module CronjobQueue included do queue_namespace :cronjob sidekiq_options retry: false + worker_context project: nil, namespace: nil, user: nil end end diff --git a/app/workers/concerns/worker_context.rb b/app/workers/concerns/worker_context.rb new file mode 100644 index 00000000000..d85565e3446 --- /dev/null +++ b/app/workers/concerns/worker_context.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +module WorkerContext + extend ActiveSupport::Concern + + class_methods do + def worker_context(attributes) + @worker_context = Gitlab::ApplicationContext.new(attributes) + end + + def get_worker_context + @worker_context || superclass_context + end + + private + + def superclass_context + return unless superclass.include?(WorkerContext) + + superclass.get_worker_context + end + end + + def with_context(context, &block) + Gitlab::ApplicationContext.new(context).use(&block) + end +end |