mini_scheduler 0.17.0 → 0.19.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 +14 -0
- data/gemfiles/sidekiq-6.5.gemfile +6 -0
- data/gemfiles/sidekiq-7.0.gemfile +6 -0
- data/gemfiles/sidekiq-7.1.gemfile +6 -0
- data/gemfiles/sidekiq-7.2.gemfile +6 -0
- data/gemfiles/sidekiq-7.3.gemfile +6 -0
- data/gemfiles/sidekiq-8.0.gemfile +6 -0
- data/gemfiles/sidekiq-8.1.gemfile +6 -0
- data/lib/mini_scheduler/manager.rb +5 -5
- data/lib/mini_scheduler/version.rb +1 -1
- data/lib/mini_scheduler.rb +8 -10
- data/mini_scheduler.gemspec +3 -3
- metadata +17 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 37ecc0b4a10699fd62aa9f20cd0c6effa899f8050d5af0affc4f3783b146957e
|
|
4
|
+
data.tar.gz: 2734787f2ee9a92b708a800a279cf0b7d06daae4067551586f5f20888b6bfbe0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7c032be14142766848756739ebc2085276af3727876cd7091f5b624b7bda179f4353a75dbe595c3568fd94ab61f44cad50eba28afd617050e775d4eb51a3cbb3
|
|
7
|
+
data.tar.gz: ea25bfb63132437dd3de657ac6fe5c0d2597b04c10fc1b56267338f5b89705f096f814a075a62182c752e5cbf3112b47c03709917b5862debb1f039d9677d554
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# 0.19.0 - 2026-03-30
|
|
2
|
+
|
|
3
|
+
- Fix race condition in `MiniScheduler::Manager`
|
|
4
|
+
- Add support for Sidekiq 8.0, 8.1
|
|
5
|
+
- Add Ruby 3.4, 4.0 to CI pipeline
|
|
6
|
+
- Add DragonflyDB to test matrix
|
|
7
|
+
- Update minimum Ruby version to 3.2
|
|
8
|
+
|
|
9
|
+
# 0.18.0 - 2024-12-20
|
|
10
|
+
|
|
11
|
+
- Add support for Sidekiq 7+
|
|
12
|
+
- Remove support for Sidekiq < 6.5
|
|
13
|
+
- Update minimum Ruby version to 3.0
|
|
14
|
+
|
|
1
15
|
# 0.17.0 - 2024-08-06
|
|
2
16
|
|
|
3
17
|
- Add `MiniScheduler::Manager.discover_running_scheduled_jobs` API to allow running scheduled jobs to easily be discovered on the
|
|
@@ -28,8 +28,8 @@ module MiniScheduler
|
|
|
28
28
|
@keep_alive_thread =
|
|
29
29
|
Thread.new do
|
|
30
30
|
while !@stopped
|
|
31
|
-
@mutex.synchronize { keep_alive }
|
|
32
31
|
sleep(@manager.keep_alive_duration / 2)
|
|
32
|
+
@mutex.synchronize { keep_alive }
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
|
|
@@ -348,7 +348,7 @@ module MiniScheduler
|
|
|
348
348
|
end
|
|
349
349
|
|
|
350
350
|
def stop!
|
|
351
|
-
@runner
|
|
351
|
+
@runner&.stop!
|
|
352
352
|
self.class.current.delete(@queue)
|
|
353
353
|
end
|
|
354
354
|
|
|
@@ -357,7 +357,7 @@ module MiniScheduler
|
|
|
357
357
|
end
|
|
358
358
|
|
|
359
359
|
def keep_alive(*ids)
|
|
360
|
-
ids = [identity_key, *@runner
|
|
360
|
+
ids = [identity_key, *@runner&.worker_thread_ids] if ids.size == 0
|
|
361
361
|
ids.each { |identity_key| redis.setex identity_key, keep_alive_duration, "" }
|
|
362
362
|
end
|
|
363
363
|
|
|
@@ -394,10 +394,10 @@ module MiniScheduler
|
|
|
394
394
|
begin
|
|
395
395
|
require "socket"
|
|
396
396
|
Socket.gethostname
|
|
397
|
-
rescue
|
|
397
|
+
rescue StandardError
|
|
398
398
|
begin
|
|
399
399
|
`hostname`.strip
|
|
400
|
-
rescue
|
|
400
|
+
rescue StandardError
|
|
401
401
|
"unknown_host"
|
|
402
402
|
end
|
|
403
403
|
end
|
data/lib/mini_scheduler.rb
CHANGED
|
@@ -5,6 +5,7 @@ require "mini_scheduler/schedule_info"
|
|
|
5
5
|
require "mini_scheduler/manager"
|
|
6
6
|
require "mini_scheduler/distributed_mutex"
|
|
7
7
|
require "sidekiq"
|
|
8
|
+
require "redis"
|
|
8
9
|
|
|
9
10
|
begin
|
|
10
11
|
require "sidekiq/exception_handler"
|
|
@@ -16,26 +17,23 @@ module MiniScheduler
|
|
|
16
17
|
yield self
|
|
17
18
|
end
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
if defined?(Sidekiq
|
|
21
|
-
|
|
22
|
-
else
|
|
23
|
-
|
|
24
|
-
Sidekiq.handle_exception(exception, context)
|
|
25
|
-
end
|
|
20
|
+
SidekiqExceptionHandler =
|
|
21
|
+
if defined?(Sidekiq.default_configuration) # Sidekiq 7+
|
|
22
|
+
->(ex, ctx, _config = nil) { Sidekiq.default_configuration.handle_exception(ex, ctx) }
|
|
23
|
+
else # Sidekiq 6.5
|
|
24
|
+
->(ex, ctx, _config = nil) { Sidekiq.handle_exception(ex, ctx) }
|
|
26
25
|
end
|
|
27
|
-
end
|
|
28
26
|
|
|
29
27
|
def self.job_exception_handler(&blk)
|
|
30
28
|
@job_exception_handler = blk if blk
|
|
31
29
|
@job_exception_handler
|
|
32
30
|
end
|
|
33
31
|
|
|
34
|
-
def self.handle_job_exception(ex, context = {})
|
|
32
|
+
def self.handle_job_exception(ex, context = {}, _config = nil)
|
|
35
33
|
if job_exception_handler
|
|
36
34
|
job_exception_handler.call(ex, context)
|
|
37
35
|
else
|
|
38
|
-
SidekiqExceptionHandler.
|
|
36
|
+
SidekiqExceptionHandler.call(ex, context)
|
|
39
37
|
end
|
|
40
38
|
end
|
|
41
39
|
|
data/mini_scheduler.gemspec
CHANGED
|
@@ -15,17 +15,17 @@ Gem::Specification.new do |spec|
|
|
|
15
15
|
spec.homepage = "https://github.com/discourse/mini_scheduler"
|
|
16
16
|
spec.license = "MIT"
|
|
17
17
|
|
|
18
|
-
spec.required_ruby_version = ">= 2.
|
|
18
|
+
spec.required_ruby_version = ">= 3.2.0"
|
|
19
19
|
|
|
20
20
|
spec.files = `git ls-files`.split($/).reject { |s| s =~ /^(spec|\.)/ }
|
|
21
21
|
spec.require_paths = ["lib"]
|
|
22
22
|
|
|
23
|
-
spec.add_runtime_dependency "sidekiq", ">=
|
|
23
|
+
spec.add_runtime_dependency "sidekiq", ">= 6.5", "< 9.0"
|
|
24
24
|
|
|
25
25
|
spec.add_development_dependency "pg", "~> 1.0"
|
|
26
26
|
spec.add_development_dependency "activesupport", "~> 7.0"
|
|
27
27
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
28
|
-
spec.add_development_dependency "mocha", "~>
|
|
28
|
+
spec.add_development_dependency "mocha", "~> 3.0"
|
|
29
29
|
spec.add_development_dependency "guard", "~> 2.0"
|
|
30
30
|
spec.add_development_dependency "guard-rspec", "~> 4.0"
|
|
31
31
|
spec.add_development_dependency "redis", ">= 4.0"
|
metadata
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mini_scheduler
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.19.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sam Saffron
|
|
8
8
|
- Neil Lalonde
|
|
9
|
-
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: sidekiq
|
|
@@ -17,20 +16,20 @@ dependencies:
|
|
|
17
16
|
requirements:
|
|
18
17
|
- - ">="
|
|
19
18
|
- !ruby/object:Gem::Version
|
|
20
|
-
version:
|
|
19
|
+
version: '6.5'
|
|
21
20
|
- - "<"
|
|
22
21
|
- !ruby/object:Gem::Version
|
|
23
|
-
version: '
|
|
22
|
+
version: '9.0'
|
|
24
23
|
type: :runtime
|
|
25
24
|
prerelease: false
|
|
26
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
27
26
|
requirements:
|
|
28
27
|
- - ">="
|
|
29
28
|
- !ruby/object:Gem::Version
|
|
30
|
-
version:
|
|
29
|
+
version: '6.5'
|
|
31
30
|
- - "<"
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
32
|
+
version: '9.0'
|
|
34
33
|
- !ruby/object:Gem::Dependency
|
|
35
34
|
name: pg
|
|
36
35
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -79,14 +78,14 @@ dependencies:
|
|
|
79
78
|
requirements:
|
|
80
79
|
- - "~>"
|
|
81
80
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
81
|
+
version: '3.0'
|
|
83
82
|
type: :development
|
|
84
83
|
prerelease: false
|
|
85
84
|
version_requirements: !ruby/object:Gem::Requirement
|
|
86
85
|
requirements:
|
|
87
86
|
- - "~>"
|
|
88
87
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '
|
|
88
|
+
version: '3.0'
|
|
90
89
|
- !ruby/object:Gem::Dependency
|
|
91
90
|
name: guard
|
|
92
91
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -184,6 +183,13 @@ files:
|
|
|
184
183
|
- README.md
|
|
185
184
|
- Rakefile
|
|
186
185
|
- app/models/mini_scheduler/stat.rb
|
|
186
|
+
- gemfiles/sidekiq-6.5.gemfile
|
|
187
|
+
- gemfiles/sidekiq-7.0.gemfile
|
|
188
|
+
- gemfiles/sidekiq-7.1.gemfile
|
|
189
|
+
- gemfiles/sidekiq-7.2.gemfile
|
|
190
|
+
- gemfiles/sidekiq-7.3.gemfile
|
|
191
|
+
- gemfiles/sidekiq-8.0.gemfile
|
|
192
|
+
- gemfiles/sidekiq-8.1.gemfile
|
|
187
193
|
- lib/generators/mini_scheduler/install/install_generator.rb
|
|
188
194
|
- lib/generators/mini_scheduler/install/templates/create_mini_scheduler_stats.rb
|
|
189
195
|
- lib/generators/mini_scheduler/install/templates/mini_scheduler_initializer.rb
|
|
@@ -202,7 +208,6 @@ homepage: https://github.com/discourse/mini_scheduler
|
|
|
202
208
|
licenses:
|
|
203
209
|
- MIT
|
|
204
210
|
metadata: {}
|
|
205
|
-
post_install_message:
|
|
206
211
|
rdoc_options: []
|
|
207
212
|
require_paths:
|
|
208
213
|
- lib
|
|
@@ -210,15 +215,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
210
215
|
requirements:
|
|
211
216
|
- - ">="
|
|
212
217
|
- !ruby/object:Gem::Version
|
|
213
|
-
version: 2.
|
|
218
|
+
version: 3.2.0
|
|
214
219
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
215
220
|
requirements:
|
|
216
221
|
- - ">="
|
|
217
222
|
- !ruby/object:Gem::Version
|
|
218
223
|
version: '0'
|
|
219
224
|
requirements: []
|
|
220
|
-
rubygems_version: 3.
|
|
221
|
-
signing_key:
|
|
225
|
+
rubygems_version: 3.6.9
|
|
222
226
|
specification_version: 4
|
|
223
227
|
summary: Adds recurring jobs for Sidekiq
|
|
224
228
|
test_files: []
|