1# frozen_string_literal: true 2 3module Ci 4 class BuildScheduleWorker # rubocop:disable Scalability/IdempotentWorker 5 include ApplicationWorker 6 7 data_consistency :always 8 9 sidekiq_options retry: 3 10 include PipelineQueue 11 12 queue_namespace :pipeline_processing 13 feature_category :continuous_integration 14 worker_resource_boundary :cpu 15 16 def perform(build_id) 17 ::Ci::Build.find_by_id(build_id).try do |build| 18 break unless build.scheduled? 19 20 Ci::RunScheduledBuildService 21 .new(build.project, build.user).execute(build) 22 end 23 end 24 end 25end 26