diff options
author | Shinya Maeda <gitlab.shinyamaeda@gmail.com> | 2017-03-22 21:54:49 +0300 |
---|---|---|
committer | Shinya Maeda <gitlab.shinyamaeda@gmail.com> | 2017-04-06 17:46:58 +0300 |
commit | 5f715f1d32c6f5ce25b3721bde8f476173afadc8 (patch) | |
tree | aae1982a02c2c53c0da9229154e45b6fecb01f61 /app/workers | |
parent | 46e4ed6bd0c8c256bce6d35b4bb992d77fd09971 (diff) |
Add scheduled_trigger model. Add cron parser. Plus, specs.
Diffstat (limited to 'app/workers')
-rw-r--r-- | app/workers/scheduled_trigger_worker.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/app/workers/scheduled_trigger_worker.rb b/app/workers/scheduled_trigger_worker.rb new file mode 100644 index 00000000000..7dc17aa4332 --- /dev/null +++ b/app/workers/scheduled_trigger_worker.rb @@ -0,0 +1,18 @@ +class ScheduledTriggerWorker + include Sidekiq::Worker + include CronjobQueue + + def perform + # TODO: Update next_run_at + + Ci::ScheduledTriggers.where("next_run_at < ?", Time.now).find_each do |trigger| + begin + Ci::CreateTriggerRequestService.new.execute(trigger.project, trigger, trigger.ref) + rescue => e + Rails.logger.error "#{trigger.id}: Failed to trigger job: #{e.message}" + ensure + trigger.schedule_next_run! + end + end + end +end |