1# frozen_string_literal: true 2 3class ScheduleMigrateExternalDiffsWorker # rubocop:disable Scalability/IdempotentWorker 4 include ApplicationWorker 5 6 data_consistency :always 7 8 # rubocop:disable Scalability/CronWorkerContext: 9 # This schedules the `MigrateExternalDiffsWorker` 10 # issue for adding context: https://gitlab.com/gitlab-org/gitlab/issues/202100 11 include CronjobQueue 12 # rubocop:enable Scalability/CronWorkerContext: 13 14 include Gitlab::ExclusiveLeaseHelpers 15 16 feature_category :code_review 17 18 def perform 19 in_lock(self.class.name.underscore, ttl: 2.hours, retries: 0) do 20 MergeRequests::MigrateExternalDiffsService.enqueue! 21 end 22 rescue Gitlab::ExclusiveLeaseHelpers::FailedToObtainLockError 23 end 24end 25