diff options
Diffstat (limited to 'app/workers/concerns')
-rw-r--r-- | app/workers/concerns/application_worker.rb | 10 | ||||
-rw-r--r-- | app/workers/concerns/chaos_queue.rb | 1 | ||||
-rw-r--r-- | app/workers/concerns/worker_attributes.rb | 13 |
3 files changed, 7 insertions, 17 deletions
diff --git a/app/workers/concerns/application_worker.rb b/app/workers/concerns/application_worker.rb index 6cc6c30c5e9..3399a4f9b57 100644 --- a/app/workers/concerns/application_worker.rb +++ b/app/workers/concerns/application_worker.rb @@ -58,10 +58,7 @@ module ApplicationWorker Gitlab::SidekiqConfig::WorkerRouter.queue_name_from_worker_name(self) end - override :validate_worker_attributes! def validate_worker_attributes! - super - # Since the delayed data_consistency will use sidekiq built in retry mechanism, it is required that this mechanism # is not disabled. if retry_disabled? && get_data_consistency == :delayed @@ -81,6 +78,13 @@ module ApplicationWorker end end + override :data_consistency + def data_consistency(data_consistency, feature_flag: nil) + super + + validate_worker_attributes! + 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 diff --git a/app/workers/concerns/chaos_queue.rb b/app/workers/concerns/chaos_queue.rb index 2ccd55157c6..a9c557f0175 100644 --- a/app/workers/concerns/chaos_queue.rb +++ b/app/workers/concerns/chaos_queue.rb @@ -6,6 +6,5 @@ module ChaosQueue included do queue_namespace :chaos feature_category_not_owned! - tags :exclude_from_gitlab_com end end diff --git a/app/workers/concerns/worker_attributes.rb b/app/workers/concerns/worker_attributes.rb index 806fce38636..eebea30655c 100644 --- a/app/workers/concerns/worker_attributes.rb +++ b/app/workers/concerns/worker_attributes.rb @@ -92,17 +92,6 @@ module WorkerAttributes set_class_attribute(:data_consistency_feature_flag, feature_flag) if feature_flag set_class_attribute(:data_consistency, data_consistency) - - validate_worker_attributes! - end - - def validate_worker_attributes! - # Since the deduplication should always take into account the latest binary replication pointer into account, - # not the first one, the deduplication will not work with sticky or delayed. - # Follow up issue to improve this: https://gitlab.com/gitlab-org/gitlab/-/issues/325291 - if idempotent? && utilizes_load_balancing_capabilities? - raise ArgumentError, "Class can't be marked as idempotent if data_consistency is not set to :always" - end end # If data_consistency is not set to :always, worker will try to utilize load balancing capabilities and use the replica @@ -147,8 +136,6 @@ module WorkerAttributes def idempotent! set_class_attribute(:idempotent, true) - - validate_worker_attributes! end def idempotent? |