diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-16 21:25:58 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-16 21:25:58 +0300 |
commit | a5f4bba440d7f9ea47046a0a561d49adf0a1e6d4 (patch) | |
tree | fb69158581673816a8cd895f9d352dcb3c678b1e /app/workers/concerns/application_worker.rb | |
parent | d16b2e8639e99961de6ddc93909f3bb5c1445ba1 (diff) |
Add latest changes from gitlab-org/gitlab@14-0-stable-eev14.0.0-rc42
Diffstat (limited to 'app/workers/concerns/application_worker.rb')
-rw-r--r-- | app/workers/concerns/application_worker.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/app/workers/concerns/application_worker.rb b/app/workers/concerns/application_worker.rb index 843be4896a3..3cba1eb31c5 100644 --- a/app/workers/concerns/application_worker.rb +++ b/app/workers/concerns/application_worker.rb @@ -13,6 +13,7 @@ module ApplicationWorker include Gitlab::SidekiqVersioning::Worker LOGGING_EXTRA_KEY = 'extra' + DEFAULT_DELAY_INTERVAL = 1 included do set_queue @@ -51,6 +52,16 @@ module ApplicationWorker subclass.after_set_class_attribute { subclass.set_queue } end + def perform_async(*args) + # Worker execution for workers with data_consistency set to :delayed or :sticky + # will be delayed to give replication enough time to complete + if utilizes_load_balancing_capabilities? + perform_in(delay_interval, *args) + else + super + end + end + def set_queue queue_name = ::Gitlab::SidekiqConfig::WorkerRouter.global.route(self) sidekiq_options queue: queue_name # rubocop:disable Cop/SidekiqOptionsQueue @@ -111,5 +122,11 @@ module ApplicationWorker Sidekiq::Client.push_bulk('class' => self, 'args' => args_list, 'at' => schedule) end end + + protected + + def delay_interval + DEFAULT_DELAY_INTERVAL.seconds + end end end |