gitlab-org--gitlab-foss/app/workers/pipeline_schedule_worker.rb
Shinya Maeda 6a18a411a3 Make pipeline schedule worker resilient
Currently, pipeline schedule worker is unstable because it's
sometimes killed by excessive memory consumption.
In order to improve the performance, we add the following fixes:

1. next_run_at is always real_next_run, which means the value
   always takes into account of worker's cron schedule
1. Remove exlusive lock. This is already covered by real_next_run
   change.
1. Use RunPipelineScheduleWorker for avoiding memory killer.
   Memory consumption is spread to the multiple sidekiq worker.
2019-06-03 10:04:57 +07:00

14 lines
366 B
Ruby

# frozen_string_literal: true
class PipelineScheduleWorker
include ApplicationWorker
include CronjobQueue
def perform
Ci::PipelineSchedule.runnable_schedules.preloaded.find_in_batches do |schedules|
schedules.each do |schedule|
Ci::PipelineScheduleService.new(schedule.project, schedule.owner).execute(schedule)
end
end
end
end