sidekiq-cron 1.5.1 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +161 -0
- data/Gemfile +3 -0
- data/README.md +74 -66
- data/lib/sidekiq/cron/job.rb +191 -132
- data/lib/sidekiq/cron/launcher.rb +17 -15
- data/lib/sidekiq/cron/locales/it.yml +23 -0
- data/lib/sidekiq/cron/poller.rb +14 -18
- data/lib/sidekiq/cron/schedule_loader.rb +20 -0
- data/lib/sidekiq/cron/support.rb +8 -1
- data/lib/sidekiq/cron/version.rb +1 -1
- data/lib/sidekiq/cron/views/cron.erb +1 -1
- data/lib/sidekiq/cron/web_extension.rb +6 -9
- data/lib/sidekiq/cron.rb +1 -0
- data/lib/sidekiq/options.rb +29 -0
- data/sidekiq-cron.gemspec +12 -13
- metadata +45 -32
- data/Changes.md +0 -111
- data/test/integration/performance_test.rb +0 -49
- data/test/test_helper.rb +0 -92
- data/test/unit/job_test.rb +0 -1124
- data/test/unit/poller_test.rb +0 -150
- data/test/unit/web_extension_test.rb +0 -156
@@ -1,38 +1,41 @@
|
|
1
|
-
# require cron poller
|
2
1
|
require 'sidekiq/cron/poller'
|
3
2
|
|
4
3
|
# For Cron we need to add some methods to Launcher
|
5
4
|
# so look at the code bellow.
|
6
5
|
#
|
7
|
-
#
|
8
|
-
# adding start and stop commands to launcher
|
6
|
+
# We are creating new cron poller instance and
|
7
|
+
# adding start and stop commands to launcher.
|
9
8
|
module Sidekiq
|
10
9
|
module Cron
|
11
10
|
module Launcher
|
12
|
-
|
11
|
+
DEFAULT_POLL_INTERVAL = 30
|
12
|
+
|
13
|
+
# Add cron poller to launcher.
|
13
14
|
attr_reader :cron_poller
|
14
15
|
|
15
|
-
#
|
16
|
-
def initialize(
|
17
|
-
|
18
|
-
|
16
|
+
# Add cron poller and execute normal initialize of Sidekiq launcher.
|
17
|
+
def initialize(config, **kwargs)
|
18
|
+
config[:cron_poll_interval] = DEFAULT_POLL_INTERVAL if config[:cron_poll_interval].nil?
|
19
|
+
|
20
|
+
@cron_poller = Sidekiq::Cron::Poller.new(config) if config[:cron_poll_interval] > 0
|
21
|
+
super
|
19
22
|
end
|
20
23
|
|
21
|
-
#
|
24
|
+
# Execute normal run of launcher and run cron poller.
|
22
25
|
def run
|
23
26
|
super
|
24
|
-
cron_poller.start
|
27
|
+
cron_poller.start if @cron_poller
|
25
28
|
end
|
26
29
|
|
27
|
-
#
|
30
|
+
# Execute normal quiet of launcher and quiet cron poller.
|
28
31
|
def quiet
|
29
|
-
cron_poller.terminate
|
32
|
+
cron_poller.terminate if @cron_poller
|
30
33
|
super
|
31
34
|
end
|
32
35
|
|
33
|
-
#
|
36
|
+
# Execute normal stop of launcher and stop cron poller.
|
34
37
|
def stop
|
35
|
-
cron_poller.terminate
|
38
|
+
cron_poller.terminate if @cron_poller
|
36
39
|
super
|
37
40
|
end
|
38
41
|
end
|
@@ -40,7 +43,6 @@ module Sidekiq
|
|
40
43
|
end
|
41
44
|
|
42
45
|
Sidekiq.configure_server do
|
43
|
-
# require Sidekiq original launcher
|
44
46
|
require 'sidekiq/launcher'
|
45
47
|
|
46
48
|
::Sidekiq::Launcher.prepend(Sidekiq::Cron::Launcher)
|
@@ -0,0 +1,23 @@
|
|
1
|
+
it:
|
2
|
+
Job: Job
|
3
|
+
Cron: Cron
|
4
|
+
CronJobs: Cron job
|
5
|
+
EnqueueNow: Accoda
|
6
|
+
EnableAll: Attiva tutto
|
7
|
+
DisableAll: Disattiva tutto
|
8
|
+
EnqueueAll: Accoda tutto
|
9
|
+
DeleteAll: Cancella tutto
|
10
|
+
"Cron string": Cron
|
11
|
+
AreYouSureEnqueueCronJobs: Vuoi accodare TUTTI i cron job?
|
12
|
+
AreYouSureEnqueueCronJob: "Vuoi accodare il cron job '%{job}'?"
|
13
|
+
AreYouSureDeleteCronJobs: Vuoi cancellare TUTTI i cron job?
|
14
|
+
AreYouSureDeleteCronJob: "Vuoi cancellare il cron job '%{job}'?"
|
15
|
+
NoCronJobsWereFound: Nessun cron job trovato
|
16
|
+
Enable: Attiva
|
17
|
+
Disable: Disattiva
|
18
|
+
"Last enqueued": Ultimo accodamento
|
19
|
+
disabled: disattivato
|
20
|
+
enabled: attivato
|
21
|
+
NoHistoryWereFound: Nessun evento in cronologia
|
22
|
+
Description: Descrizione
|
23
|
+
Message: Payload
|
data/lib/sidekiq/cron/poller.rb
CHANGED
@@ -1,27 +1,19 @@
|
|
1
1
|
require 'sidekiq'
|
2
2
|
require 'sidekiq/cron'
|
3
3
|
require 'sidekiq/scheduled'
|
4
|
+
require 'sidekiq/options'
|
4
5
|
|
5
6
|
module Sidekiq
|
6
7
|
module Cron
|
7
|
-
|
8
|
-
|
9
|
-
# The Poller checks Redis every N seconds for sheduled cron jobs
|
8
|
+
# The Poller checks Redis every N seconds for sheduled cron jobs.
|
10
9
|
class Poller < Sidekiq::Scheduled::Poller
|
11
|
-
def initialize
|
12
|
-
Sidekiq
|
13
|
-
if config.respond_to?(:[])
|
14
|
-
config[:poll_interval_average] = config[:average_scheduled_poll_interval] || POLL_INTERVAL
|
15
|
-
else
|
16
|
-
config.options[:poll_interval_average] = config.options[:average_scheduled_poll_interval] || POLL_INTERVAL
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
if Gem::Version.new(Sidekiq::VERSION) >= Gem::Version.new("6.5.0")
|
21
|
-
# Sidekiq Poller init requires a config argument
|
22
|
-
super(Sidekiq)
|
23
|
-
else
|
10
|
+
def initialize(config = nil)
|
11
|
+
if Gem::Version.new(Sidekiq::VERSION) >= Gem::Version.new('6.5.0')
|
24
12
|
super
|
13
|
+
else
|
14
|
+
# Old version of Sidekiq does not accept a config argument.
|
15
|
+
@config = config
|
16
|
+
super()
|
25
17
|
end
|
26
18
|
end
|
27
19
|
|
@@ -32,7 +24,7 @@ module Sidekiq
|
|
32
24
|
end
|
33
25
|
rescue => ex
|
34
26
|
# Most likely a problem with redis networking.
|
35
|
-
# Punt and try again at the next interval
|
27
|
+
# Punt and try again at the next interval.
|
36
28
|
Sidekiq.logger.error ex.message
|
37
29
|
Sidekiq.logger.error ex.backtrace.first
|
38
30
|
handle_exception(ex) if respond_to?(:handle_exception)
|
@@ -43,11 +35,15 @@ module Sidekiq
|
|
43
35
|
def enqueue_job(job, time = Time.now.utc)
|
44
36
|
job.test_and_enque_for_time! time if job && job.valid?
|
45
37
|
rescue => ex
|
46
|
-
#
|
38
|
+
# Problem somewhere in one job.
|
47
39
|
Sidekiq.logger.error "CRON JOB: #{ex.message}"
|
48
40
|
Sidekiq.logger.error "CRON JOB: #{ex.backtrace.first}"
|
49
41
|
handle_exception(ex) if respond_to?(:handle_exception)
|
50
42
|
end
|
43
|
+
|
44
|
+
def poll_interval_average(process_count = 1)
|
45
|
+
@config[:cron_poll_interval]
|
46
|
+
end
|
51
47
|
end
|
52
48
|
end
|
53
49
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'sidekiq'
|
2
|
+
require 'sidekiq/cron/job'
|
3
|
+
require 'sidekiq/options'
|
4
|
+
|
5
|
+
Sidekiq.configure_server do |config|
|
6
|
+
schedule_file = Sidekiq::Options[:cron_schedule_file] || 'config/schedule.yml'
|
7
|
+
|
8
|
+
if File.exist?(schedule_file)
|
9
|
+
config.on(:startup) do
|
10
|
+
schedule = Sidekiq::Cron::Support.load_yaml(ERB.new(IO.read(schedule_file)).result)
|
11
|
+
if schedule.kind_of?(Hash)
|
12
|
+
Sidekiq::Cron::Job.load_from_hash!(schedule, source: "schedule")
|
13
|
+
elsif schedule.kind_of?(Array)
|
14
|
+
Sidekiq::Cron::Job.load_from_array!(schedule, source: "schedule")
|
15
|
+
else
|
16
|
+
raise "Not supported schedule format. Confirm your #{schedule_file}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/sidekiq/cron/support.rb
CHANGED
@@ -28,11 +28,18 @@ module Sidekiq
|
|
28
28
|
const
|
29
29
|
end
|
30
30
|
|
31
|
-
# owner is in Object, so raise
|
32
31
|
constant.const_get(name, false)
|
33
32
|
end
|
34
33
|
end
|
35
34
|
end
|
35
|
+
|
36
|
+
def self.load_yaml(src)
|
37
|
+
if Psych::VERSION > "4.0"
|
38
|
+
YAML.safe_load(src, permitted_classes: [Symbol], aliases: true)
|
39
|
+
else
|
40
|
+
YAML.load(src)
|
41
|
+
end
|
42
|
+
end
|
36
43
|
end
|
37
44
|
end
|
38
45
|
end
|
data/lib/sidekiq/cron/version.rb
CHANGED
@@ -42,7 +42,7 @@
|
|
42
42
|
<td style="<%= style %>"><%= t job.status %></td>
|
43
43
|
<td style="<%= style %>">
|
44
44
|
<a href="<%= root_path %>cron/<%= CGI.escape(job.name).gsub('+', '%20') %>">
|
45
|
-
<b><%= job.name %></b>
|
45
|
+
<b style="<%= style %>"><%= job.name %></b>
|
46
46
|
</a>
|
47
47
|
<hr style="margin:3px;border:0;">
|
48
48
|
<small>
|
@@ -1,12 +1,10 @@
|
|
1
1
|
module Sidekiq
|
2
2
|
module Cron
|
3
3
|
module WebExtension
|
4
|
-
|
5
4
|
def self.registered(app)
|
6
|
-
|
7
5
|
app.settings.locales << File.join(File.expand_path("..", __FILE__), "locales")
|
8
6
|
|
9
|
-
#
|
7
|
+
# Index page of cron jobs.
|
10
8
|
app.get '/cron' do
|
11
9
|
view_path = File.join(File.expand_path("..", __FILE__), "views")
|
12
10
|
|
@@ -15,7 +13,7 @@ module Sidekiq
|
|
15
13
|
render(:erb, File.read(File.join(view_path, "cron.erb")))
|
16
14
|
end
|
17
15
|
|
18
|
-
#
|
16
|
+
# Display job detail + jid history.
|
19
17
|
app.get '/cron/:name' do
|
20
18
|
view_path = File.join(File.expand_path("..", __FILE__), "views")
|
21
19
|
|
@@ -27,7 +25,7 @@ module Sidekiq
|
|
27
25
|
end
|
28
26
|
end
|
29
27
|
|
30
|
-
#
|
28
|
+
# Enqueue cron job.
|
31
29
|
app.post '/cron/:name/enque' do
|
32
30
|
if route_params[:name] === '__all__'
|
33
31
|
Sidekiq::Cron::Job.all.each(&:enque!)
|
@@ -37,7 +35,7 @@ module Sidekiq
|
|
37
35
|
redirect params['redirect'] || "#{root_path}cron"
|
38
36
|
end
|
39
37
|
|
40
|
-
#
|
38
|
+
# Delete schedule.
|
41
39
|
app.post '/cron/:name/delete' do
|
42
40
|
if route_params[:name] === '__all__'
|
43
41
|
Sidekiq::Cron::Job.all.each(&:destroy)
|
@@ -47,7 +45,7 @@ module Sidekiq
|
|
47
45
|
redirect "#{root_path}cron"
|
48
46
|
end
|
49
47
|
|
50
|
-
#
|
48
|
+
# Enable job.
|
51
49
|
app.post '/cron/:name/enable' do
|
52
50
|
if route_params[:name] === '__all__'
|
53
51
|
Sidekiq::Cron::Job.all.each(&:enable!)
|
@@ -57,7 +55,7 @@ module Sidekiq
|
|
57
55
|
redirect params['redirect'] || "#{root_path}cron"
|
58
56
|
end
|
59
57
|
|
60
|
-
#
|
58
|
+
# Disable job.
|
61
59
|
app.post '/cron/:name/disable' do
|
62
60
|
if route_params[:name] === '__all__'
|
63
61
|
Sidekiq::Cron::Job.all.each(&:disable!)
|
@@ -66,7 +64,6 @@ module Sidekiq
|
|
66
64
|
end
|
67
65
|
redirect params['redirect'] || "#{root_path}cron"
|
68
66
|
end
|
69
|
-
|
70
67
|
end
|
71
68
|
end
|
72
69
|
end
|
data/lib/sidekiq/cron.rb
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'sidekiq'
|
2
|
+
|
3
|
+
module Sidekiq
|
4
|
+
module Options
|
5
|
+
def self.[](key)
|
6
|
+
self.config[key]
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.[]=(key, value)
|
10
|
+
self.config[key] = value
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.config
|
14
|
+
options_field ? Sidekiq.public_send(options_field) : Sidekiq
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.options_field
|
18
|
+
return @options_field unless @options_field.nil?
|
19
|
+
sidekiq_version = Gem::Version.new(Sidekiq::VERSION)
|
20
|
+
@options_field = if sidekiq_version >= Gem::Version.new('7.0')
|
21
|
+
:default_configuration
|
22
|
+
elsif sidekiq_version >= Gem::Version.new('6.5')
|
23
|
+
false
|
24
|
+
else
|
25
|
+
:options
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/sidekiq-cron.gemspec
CHANGED
@@ -5,18 +5,18 @@ require './lib/sidekiq/cron/version'
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "sidekiq-cron"
|
7
7
|
s.version = Sidekiq::Cron::VERSION
|
8
|
-
|
9
|
-
s.
|
10
|
-
s.
|
8
|
+
s.summary = "Scheduler/Cron for Sidekiq jobs"
|
9
|
+
s.description = "Enables to set jobs to be run in specified time (using CRON notation or natural language)"
|
10
|
+
s.homepage = "https://github.com/sidekiq-cron/sidekiq-cron"
|
11
11
|
s.authors = ["Ondrej Bartas"]
|
12
|
-
s.description = "Enables to set jobs to be run in specified time (using CRON notation)"
|
13
12
|
s.email = "ondrej@bartas.cz"
|
13
|
+
s.licenses = ["MIT"]
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE.txt",
|
16
16
|
"README.md"
|
17
17
|
]
|
18
|
-
s.files = Dir.glob('lib/**/*') +
|
19
|
-
"
|
18
|
+
s.files = Dir.glob('lib/**/*') + [
|
19
|
+
"CHANGELOG.md",
|
20
20
|
"Gemfile",
|
21
21
|
"LICENSE.txt",
|
22
22
|
"Rakefile",
|
@@ -24,18 +24,17 @@ Gem::Specification.new do |s|
|
|
24
24
|
"sidekiq-cron.gemspec",
|
25
25
|
]
|
26
26
|
|
27
|
-
s.
|
28
|
-
s.licenses = ["MIT"]
|
29
|
-
s.summary = "Sidekiq-Cron helps to add repeated scheduled jobs"
|
27
|
+
s.required_ruby_version = ">= 2.7"
|
30
28
|
|
31
|
-
s.add_dependency("fugit", "~> 1")
|
32
|
-
s.add_dependency("sidekiq", ">=
|
29
|
+
s.add_dependency("fugit", "~> 1.8")
|
30
|
+
s.add_dependency("sidekiq", ">= 6")
|
31
|
+
s.add_dependency("globalid", ">= 1.0.1")
|
33
32
|
|
34
33
|
s.add_development_dependency("minitest", "~> 5.15")
|
35
|
-
s.add_development_dependency("mocha", "~> 1
|
36
|
-
s.add_development_dependency("redis-namespace", "~> 1.8")
|
34
|
+
s.add_development_dependency("mocha", "~> 2.1")
|
37
35
|
s.add_development_dependency("rack", "~> 2.2")
|
38
36
|
s.add_development_dependency("rack-test", "~> 1.1")
|
39
37
|
s.add_development_dependency("rake", "~> 13.0")
|
40
38
|
s.add_development_dependency("simplecov", "~> 0.21")
|
39
|
+
s.add_development_dependency("simplecov-cobertura", "~> 2.1")
|
41
40
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-cron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ondrej Bartas
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fugit
|
@@ -16,70 +16,70 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1'
|
19
|
+
version: '1.8'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1'
|
26
|
+
version: '1.8'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sidekiq
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '6'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: '6'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: globalid
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
48
|
-
type: :
|
47
|
+
version: 1.0.1
|
48
|
+
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 1.0.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: minitest
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '5.15'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '5.15'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: mocha
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '1
|
75
|
+
version: '2.1'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '1
|
82
|
+
version: '2.1'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rack
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,7 +136,22 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0.21'
|
139
|
-
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: simplecov-cobertura
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '2.1'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '2.1'
|
153
|
+
description: Enables to set jobs to be run in specified time (using CRON notation
|
154
|
+
or natural language)
|
140
155
|
email: ondrej@bartas.cz
|
141
156
|
executables: []
|
142
157
|
extensions: []
|
@@ -144,7 +159,7 @@ extra_rdoc_files:
|
|
144
159
|
- LICENSE.txt
|
145
160
|
- README.md
|
146
161
|
files:
|
147
|
-
-
|
162
|
+
- CHANGELOG.md
|
148
163
|
- Gemfile
|
149
164
|
- LICENSE.txt
|
150
165
|
- README.md
|
@@ -155,28 +170,26 @@ files:
|
|
155
170
|
- lib/sidekiq/cron/launcher.rb
|
156
171
|
- lib/sidekiq/cron/locales/de.yml
|
157
172
|
- lib/sidekiq/cron/locales/en.yml
|
173
|
+
- lib/sidekiq/cron/locales/it.yml
|
158
174
|
- lib/sidekiq/cron/locales/ja.yml
|
159
175
|
- lib/sidekiq/cron/locales/pt.yml
|
160
176
|
- lib/sidekiq/cron/locales/ru.yml
|
161
177
|
- lib/sidekiq/cron/locales/zh-CN.yml
|
162
178
|
- lib/sidekiq/cron/poller.rb
|
179
|
+
- lib/sidekiq/cron/schedule_loader.rb
|
163
180
|
- lib/sidekiq/cron/support.rb
|
164
181
|
- lib/sidekiq/cron/version.rb
|
165
182
|
- lib/sidekiq/cron/views/cron.erb
|
166
183
|
- lib/sidekiq/cron/views/cron_show.erb
|
167
184
|
- lib/sidekiq/cron/web.rb
|
168
185
|
- lib/sidekiq/cron/web_extension.rb
|
186
|
+
- lib/sidekiq/options.rb
|
169
187
|
- sidekiq-cron.gemspec
|
170
|
-
|
171
|
-
- test/test_helper.rb
|
172
|
-
- test/unit/job_test.rb
|
173
|
-
- test/unit/poller_test.rb
|
174
|
-
- test/unit/web_extension_test.rb
|
175
|
-
homepage: https://github.com/ondrejbartas/sidekiq-cron
|
188
|
+
homepage: https://github.com/sidekiq-cron/sidekiq-cron
|
176
189
|
licenses:
|
177
190
|
- MIT
|
178
191
|
metadata: {}
|
179
|
-
post_install_message:
|
192
|
+
post_install_message:
|
180
193
|
rdoc_options: []
|
181
194
|
require_paths:
|
182
195
|
- lib
|
@@ -184,15 +197,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
184
197
|
requirements:
|
185
198
|
- - ">="
|
186
199
|
- !ruby/object:Gem::Version
|
187
|
-
version: '2.
|
200
|
+
version: '2.7'
|
188
201
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
189
202
|
requirements:
|
190
203
|
- - ">="
|
191
204
|
- !ruby/object:Gem::Version
|
192
205
|
version: '0'
|
193
206
|
requirements: []
|
194
|
-
rubygems_version: 3.
|
195
|
-
signing_key:
|
207
|
+
rubygems_version: 3.4.10
|
208
|
+
signing_key:
|
196
209
|
specification_version: 4
|
197
|
-
summary:
|
210
|
+
summary: Scheduler/Cron for Sidekiq jobs
|
198
211
|
test_files: []
|
data/Changes.md
DELETED
@@ -1,111 +0,0 @@
|
|
1
|
-
# Changelog
|
2
|
-
|
3
|
-
All notable changes to this project will be documented in this file.
|
4
|
-
|
5
|
-
## 1.5.1
|
6
|
-
|
7
|
-
- Fixes an issue that prevented the gem to work in previous Sidekiq versions (https://github.com/ondrejbartas/sidekiq-cron/pull/335)
|
8
|
-
|
9
|
-
## 1.5.0
|
10
|
-
|
11
|
-
- Integrate Sidekiq v6.5 breaking changes (https://github.com/ondrejbartas/sidekiq-cron/pull/331)
|
12
|
-
- Add portuguese translations (https://github.com/ondrejbartas/sidekiq-cron/pull/332)
|
13
|
-
|
14
|
-
## 1.4.0
|
15
|
-
|
16
|
-
- Fix buttons order in job show view (https://github.com/ondrejbartas/sidekiq-cron/pull/302)
|
17
|
-
- Dark Mode support in UI (https://github.com/ondrejbartas/sidekiq-cron/pull/317/282)
|
18
|
-
- Remove invocation of deprecated Redis functionality (https://github.com/ondrejbartas/sidekiq-cron/pull/318)
|
19
|
-
- Internal code cleanup (https://github.com/ondrejbartas/sidekiq-cron/pull/317)
|
20
|
-
- Optimize gem size (https://github.com/ondrejbartas/sidekiq-cron/pull/322)
|
21
|
-
- Fix "Show All" button on cron jobs view with Sidekiq 6.3.0+ (https://github.com/ondrejbartas/sidekiq-cron/pull/321)
|
22
|
-
- Documentation updates
|
23
|
-
|
24
|
-
## 1.3.0
|
25
|
-
|
26
|
-
- Add confirmation dialog when enquing jobs from UI
|
27
|
-
- Start to support Sidekiq `average_scheduled_poll_interval` option (replaced `poll_interval`)
|
28
|
-
- Enable to use latest fugit to parse cron notation alowing use of natural language (ie `"every 30 minutes"`)
|
29
|
-
- Fix deprecation warning for Redis 4.6.x
|
30
|
-
- Fix different response from Redis#exists in different Redis versions
|
31
|
-
- All PRs:
|
32
|
-
- https://github.com/ondrejbartas/sidekiq-cron/pull/275
|
33
|
-
- https://github.com/ondrejbartas/sidekiq-cron/pull/287
|
34
|
-
- https://github.com/ondrejbartas/sidekiq-cron/pull/309
|
35
|
-
- https://github.com/ondrejbartas/sidekiq-cron/pull/299
|
36
|
-
- https://github.com/ondrejbartas/sidekiq-cron/pull/314
|
37
|
-
- https://github.com/ondrejbartas/sidekiq-cron/pull/288
|
38
|
-
|
39
|
-
## 1.2.0
|
40
|
-
|
41
|
-
- Updated readme
|
42
|
-
- Fix problem with Sidekiq::Launcher and requiring it when not needed
|
43
|
-
- Better patching of Sidekiq::Launcher
|
44
|
-
- Fixed Dockerfile
|
45
|
-
|
46
|
-
## 1.1.0
|
47
|
-
|
48
|
-
- Updated readme
|
49
|
-
- Fix unit tests - changed argument error when getting invalid cron format
|
50
|
-
- When fallbacking old job enqueued time use `Time.parse` without format (so ruby can decide best method to parse it)
|
51
|
-
- Add option `date_as_argument` which will add to your job arguments on last place `Time.now.to_f` when it was eneuqued
|
52
|
-
- Add option `description` which will allow you to add notes to your jobs so in web view you can see it
|
53
|
-
- Fixed translations
|
54
|
-
|
55
|
-
## 1.0.4
|
56
|
-
|
57
|
-
- Fix problem with upgrading to 1.0.x - parsing last enqued time didn't count with old time format stored in Redis
|
58
|
-
|
59
|
-
## 1.0.0
|
60
|
-
|
61
|
-
- Use [fugit](https://github.com/floraison/fugit) instead of [rufus-scheduler](https://github.com/jmettraux/rufus-scheduler) - API of cron didn't change (rufus scheduler is using fugit)
|
62
|
-
- Better working with Timezones
|
63
|
-
- Translations for JA, zh-CN
|
64
|
-
- Cron without timezone are considered as UTC, to add Timezone to cron use format `* * * * * Europe/Berlin`
|
65
|
-
- Be aware that this release can change when your jobs are enqueued (for me it didn't change but it is in one project, in other it can shift by different timezone setup)
|
66
|
-
|
67
|
-
## 0.6.0
|
68
|
-
|
69
|
-
- Set poller to check jobs every 30s by default (possible to override by `Sidekiq.options[:poll_interval] = 10`)
|
70
|
-
- Add group actions (enqueue, enable, disable, delete) all in web view
|
71
|
-
- Fix poller to enqueu all jobs in poll start time
|
72
|
-
- Add performance test for enqueue of jobs (10 000 jobs in less than 19s)
|
73
|
-
- Fix problem with default queue
|
74
|
-
- Remove redis-namespace from dependencies
|
75
|
-
- Update ruby versions in travis
|
76
|
-
|
77
|
-
## 0.5.0
|
78
|
-
|
79
|
-
- Add Docker support
|
80
|
-
- All crons are now evaluated in UTC
|
81
|
-
- Fix rufus scheduler & timezones problems
|
82
|
-
- Add support for Sidekiq 4.2.1
|
83
|
-
- Fix readme
|
84
|
-
- Add Russian locale
|
85
|
-
- User Rack.env in tests
|
86
|
-
- Faster enqueue of jobs
|
87
|
-
- Permit to use ActiveJob::Base.queue_name_delimiter
|
88
|
-
- Fix problem with multiple times enqueue #84
|
89
|
-
- Fix problem with enqueue of unknown class
|
90
|
-
|
91
|
-
## 0.4.0
|
92
|
-
|
93
|
-
- Enable to work with Sidekiq >= 4.0.0
|
94
|
-
- Fix readme
|
95
|
-
|
96
|
-
## 0.3.1
|
97
|
-
|
98
|
-
- Add CSRF tags to forms so it will work with Sidekiq >= 3.4.2
|
99
|
-
- Remove Tilt dependency
|
100
|
-
|
101
|
-
## 0.3.0
|
102
|
-
|
103
|
-
- Suport for Active Job
|
104
|
-
- Sidekiq cron web ui needs to be loaded by: require 'sidekiq/cron/web'
|
105
|
-
- Add load_from_hash! and load_from_array! which cleanup jobs before adding new ones
|
106
|
-
|
107
|
-
## 0.1.1
|
108
|
-
|
109
|
-
- Add Web front-end with enabled/disable job, enqueue now, delete job
|
110
|
-
- Add cron poller - enqueue cron jobs
|
111
|
-
- Add cron job - save all needed data to Redis
|