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

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