summaryrefslogtreecommitdiff
path: root/app/workers/trigger_schedule_worker.rb
blob: d55e9378e02279025a21bcce4851d8d4e4b4877c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class TriggerScheduleWorker
  include Sidekiq::Worker
  include CronjobQueue

  def perform
    Ci::TriggerSchedule.where("next_run_at < ?", Time.now).find_each do |trigger|
      begin
        Ci::CreatePipelineService.new(trigger.project, trigger.owner, ref: trigger.ref).
          execute(ignore_skip_ci: true, scheduled_trigger: true)
      rescue => e
        Rails.logger.error "#{trigger.id}: Failed to trigger job: #{e.message}"
      ensure
        trigger.schedule_next_run!
      end
    end
  end
end