From b379e010158594da586be4bcab06dbf56652d04f Mon Sep 17 00:00:00 2001 From: Pam Artiaga Date: Wed, 23 Jul 2025 17:49:07 +1000 Subject: [PATCH] Introduce pause control to ActiveContext --- .../ai/active_context/bulk_process_worker.rb | 1 + .../sidekiq_middleware/pause_control.rb | 1 + .../strategies/active_context.rb | 26 +++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 lib/gitlab/sidekiq_middleware/pause_control/strategies/active_context.rb diff --git a/ee/app/workers/ai/active_context/bulk_process_worker.rb b/ee/app/workers/ai/active_context/bulk_process_worker.rb index 52bc8ed0667b10..fa6e80ae541a23 100644 --- a/ee/app/workers/ai/active_context/bulk_process_worker.rb +++ b/ee/app/workers/ai/active_context/bulk_process_worker.rb @@ -21,6 +21,7 @@ class BulkProcessWorker urgency :low data_consistency :sticky loggable_arguments 0, 1 + pause_control :active_context end end end diff --git a/lib/gitlab/sidekiq_middleware/pause_control.rb b/lib/gitlab/sidekiq_middleware/pause_control.rb index 510a43eb41df55..aed1c9a28f25fb 100644 --- a/lib/gitlab/sidekiq_middleware/pause_control.rb +++ b/lib/gitlab/sidekiq_middleware/pause_control.rb @@ -12,6 +12,7 @@ module PauseControl zoekt: ::Gitlab::SidekiqMiddleware::PauseControl::Strategies::Zoekt, none: ::Gitlab::SidekiqMiddleware::PauseControl::Strategies::None, advanced_search: ::Gitlab::SidekiqMiddleware::PauseControl::Strategies::AdvancedSearch, + active_context: ::Gitlab::SidekiqMiddleware::PauseControl::Strategies::ActiveContext, deprecated: ::Gitlab::SidekiqMiddleware::PauseControl::Strategies::Deprecated }.freeze diff --git a/lib/gitlab/sidekiq_middleware/pause_control/strategies/active_context.rb b/lib/gitlab/sidekiq_middleware/pause_control/strategies/active_context.rb new file mode 100644 index 00000000000000..4b8073bf3f3862 --- /dev/null +++ b/lib/gitlab/sidekiq_middleware/pause_control/strategies/active_context.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +module Gitlab + module SidekiqMiddleware + module PauseControl + module Strategies + class ActiveContext < Base + def should_pause? + return false unless ::ActiveContext.indexing? + + return false if ::ActiveContext.adapter.name == 'postgresql' + + return Gitlab::CurrentSettings.elasticsearch_pause_indexing if use_advanced_search_config? + + # TODO: introduce an ActiveContext-specific setting here + false + end + + def use_advanced_search_config? + ::ActiveContext.adapter.connection.options[:use_advanced_search_config] + end + end + end + end + end +end -- GitLab