Adopt Fugit to replace Rufus::Scheduler
This commit is contained in:
parent
dbecca8eb7
commit
def2d5565e
|
@ -185,7 +185,7 @@ GEM
|
|||
erubi (1.7.1)
|
||||
erubis (2.7.0)
|
||||
escape_utils (1.2.1)
|
||||
et-orbi (1.1.6)
|
||||
et-orbi (1.1.7)
|
||||
tzinfo
|
||||
eventmachine (1.2.7)
|
||||
excon (0.62.0)
|
||||
|
@ -258,8 +258,8 @@ GEM
|
|||
foreman (0.84.0)
|
||||
thor (~> 0.19.1)
|
||||
formatador (0.2.5)
|
||||
fugit (1.1.6)
|
||||
et-orbi (~> 1.1, >= 1.1.6)
|
||||
fugit (1.1.7)
|
||||
et-orbi (~> 1.1, >= 1.1.7)
|
||||
raabro (~> 1.1)
|
||||
fuubar (2.2.0)
|
||||
rspec-core (~> 3.0)
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Update sidekiq-cron to 1.0.4 and use fugit to replace rufus-scheduler to parse
|
||||
cron syntax
|
||||
merge_request: 24235
|
||||
author:
|
||||
type: other
|
|
@ -3,7 +3,7 @@
|
|||
> **Notes**:
|
||||
> - This feature was introduced in 9.1 as [Trigger Schedule][ce-10533].
|
||||
> - In 9.2, the feature was [renamed to Pipeline Schedule][ce-10853].
|
||||
> - Cron notation is parsed by [Rufus-Scheduler](https://github.com/jmettraux/rufus-scheduler).
|
||||
> - Cron notation is parsed by [Fugit](https://github.com/floraison/fugit).
|
||||
|
||||
Pipeline schedules can be used to run a pipeline at specific intervals, for example every
|
||||
month on the 22nd for a certain branch.
|
||||
|
|
|
@ -35,7 +35,7 @@ module Gitlab
|
|||
# NOTE:
|
||||
# cron_timezone can only accept timezones listed in TZInfo::Timezone.
|
||||
# Aliases of Timezones from ActiveSupport::TimeZone are NOT accepted,
|
||||
# because Rufus::Scheduler only supports TZInfo::Timezone.
|
||||
# because Fugit::Cron only supports TZInfo::Timezone.
|
||||
#
|
||||
# For example, those codes have the same effect.
|
||||
# Time.zone = 'Pacific Time (US & Canada)' (ActiveSupport::TimeZone)
|
||||
|
@ -47,10 +47,7 @@ module Gitlab
|
|||
# If you want to know more, please take a look
|
||||
# https://github.com/rails/rails/blob/master/activesupport/lib/active_support/values/time_zone.rb
|
||||
def try_parse_cron(cron, cron_timezone)
|
||||
cron_line = Rufus::Scheduler.parse("#{cron} #{cron_timezone}")
|
||||
cron_line if cron_line.is_a?(Rufus::Scheduler::CronLine)
|
||||
rescue
|
||||
# noop
|
||||
Fugit::Cron.parse("#{cron} #{cron_timezone}")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,7 +2,7 @@ require 'spec_helper'
|
|||
|
||||
describe Sidekiq::Cron::Job do
|
||||
describe 'cron jobs' do
|
||||
context 'when rufus-scheduler depends on ZoTime or EoTime' do
|
||||
context 'when Fugit depends on ZoTime or EoTime' do
|
||||
before do
|
||||
described_class
|
||||
.create(name: 'TestCronWorker',
|
||||
|
@ -10,7 +10,7 @@ describe Sidekiq::Cron::Job do
|
|||
class: Settings.cron_jobs[:pipeline_schedule_worker]['job_class'])
|
||||
end
|
||||
|
||||
it 'does not get "Rufus::Scheduler::ZoTime/EtOrbi::EoTime into an exact number"' do
|
||||
it 'does not get any errors' do
|
||||
expect { described_class.all.first.should_enque?(Time.now) }.not_to raise_error
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue