mini_scheduler 0.19.0 → 0.20.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 37ecc0b4a10699fd62aa9f20cd0c6effa899f8050d5af0affc4f3783b146957e
4
- data.tar.gz: 2734787f2ee9a92b708a800a279cf0b7d06daae4067551586f5f20888b6bfbe0
3
+ metadata.gz: a5a55f29798c78302b8e9ad6279f200bff9842980cb2591d932841c613eeb260
4
+ data.tar.gz: 8a2a7d79a5a0997c54b7dc1f6bf55f316963cd10102f542e4d358c3cadb98bbc
5
5
  SHA512:
6
- metadata.gz: 7c032be14142766848756739ebc2085276af3727876cd7091f5b624b7bda179f4353a75dbe595c3568fd94ab61f44cad50eba28afd617050e775d4eb51a3cbb3
7
- data.tar.gz: ea25bfb63132437dd3de657ac6fe5c0d2597b04c10fc1b56267338f5b89705f096f814a075a62182c752e5cbf3112b47c03709917b5862debb1f039d9677d554
6
+ metadata.gz: 2dd40dbf5325b0b881d2b4c49ecb147d39cd433372700410aef26ad70091a094563520dc9cc5b5ed15642f3ff68a77982d53ba5d28b30dd18ea948755e24e230
7
+ data.tar.gz: 9cbea4b51e7b97e02d86d5473ab48596945484aff05b47d3a3313764d70d79bdc4f75e9cd6b88ff9c79b2b62aa85f308d66b626755e11263b546bc1a6160e055
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # 0.20.0 - 2026-05-13
2
+
3
+ - Fix `MiniScheduler::Web` integration in Sidekiq 8+
4
+ - Move `redis` import to specs, host application won't need to explicitly
5
+ declare an otherwise unnecessary dependency (Sidekiq already migrated
6
+ to `redis-client` in v7.0)
7
+
1
8
  # 0.19.0 - 2026-03-30
2
9
 
3
10
  - Fix race condition in `MiniScheduler::Manager`
@@ -6,7 +6,7 @@ if defined?(ActiveRecord::Base)
6
6
  self.table_name = "scheduler_stats"
7
7
 
8
8
  def self.purge_old
9
- where("started_at < ?", 1.months.ago).delete_all
9
+ where("started_at < ?", 1.month.ago).delete_all
10
10
  end
11
11
  end
12
12
  end
@@ -22,9 +22,9 @@ module MiniScheduler
22
22
  @mutex = Mutex.new
23
23
  end
24
24
 
25
- MAX_POLLING_ATTEMPTS ||= 60
26
- BASE_SLEEP_DURATION ||= 0.001
27
- MAX_SLEEP_DURATION ||= 1
25
+ MAX_POLLING_ATTEMPTS = 60
26
+ BASE_SLEEP_DURATION = 0.001
27
+ MAX_SLEEP_DURATION = 1
28
28
 
29
29
  # NOTE wrapped in mutex to maintain its semantics
30
30
  def synchronize
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MiniScheduler
4
- VERSION = "0.19.0"
4
+ VERSION = "0.20.0"
5
5
  end
@@ -18,22 +18,24 @@ module MiniScheduler
18
18
  end
19
19
  end
20
20
 
21
- def self.registered(app)
22
- app.helpers do
23
- def sane_time(time)
24
- return unless time
25
- time
26
- end
21
+ module Helpers
22
+ def sane_time(time)
23
+ return unless time
24
+ time
25
+ end
27
26
 
28
- def sane_duration(duration)
29
- return unless duration
30
- if duration < 1000
31
- "#{duration}ms"
32
- else
33
- "#{"%.2f" % (duration / 1000.0)} secs"
34
- end
27
+ def sane_duration(duration)
28
+ return unless duration
29
+ if duration < 1000
30
+ "#{duration}ms"
31
+ else
32
+ "#{"%.2f" % (duration / 1000.0)} secs"
35
33
  end
36
34
  end
35
+ end
36
+
37
+ def self.registered(app)
38
+ app.helpers Helpers
37
39
 
38
40
  app.get "/scheduler" do
39
41
  MiniScheduler.before_sidekiq_web_request&.call
@@ -72,5 +74,18 @@ module MiniScheduler
72
74
  end
73
75
  end
74
76
 
75
- Sidekiq::Web.register(MiniScheduler::Web)
76
- Sidekiq::Web.tabs["Scheduler"] = "scheduler"
77
+ sidekiq_version = Gem::Version.new(Sidekiq::VERSION)
78
+ register_options = {
79
+ name: nil, # asset namespace (not used here)
80
+ tab: "Scheduler", # tab label
81
+ index: "scheduler", # index route name
82
+ }
83
+
84
+ if sidekiq_version < "7.3.0"
85
+ Sidekiq::Web.register MiniScheduler::Web
86
+ Sidekiq::Web.tabs[register_options[:tab]] = register_options[:index]
87
+ elsif sidekiq_version < "8.0.0"
88
+ Sidekiq::Web.register(MiniScheduler::Web, **register_options)
89
+ else # 8.0+
90
+ Sidekiq::Web.configure { |cfg| cfg.register(MiniScheduler::Web, **register_options) }
91
+ end
@@ -5,7 +5,6 @@ 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"
9
8
 
10
9
  begin
11
10
  require "sidekiq/exception_handler"
@@ -30,6 +30,6 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency "guard-rspec", "~> 4.0"
31
31
  spec.add_development_dependency "redis", ">= 4.0"
32
32
  spec.add_development_dependency "rake", "~> 13.0"
33
- spec.add_development_dependency "rubocop-discourse", "= 3.8.1"
33
+ spec.add_development_dependency "rubocop-discourse", "= 3.18.0"
34
34
  spec.add_development_dependency "syntax_tree"
35
35
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_scheduler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.0
4
+ version: 0.20.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
@@ -148,14 +148,14 @@ dependencies:
148
148
  requirements:
149
149
  - - '='
150
150
  - !ruby/object:Gem::Version
151
- version: 3.8.1
151
+ version: 3.18.0
152
152
  type: :development
153
153
  prerelease: false
154
154
  version_requirements: !ruby/object:Gem::Requirement
155
155
  requirements:
156
156
  - - '='
157
157
  - !ruby/object:Gem::Version
158
- version: 3.8.1
158
+ version: 3.18.0
159
159
  - !ruby/object:Gem::Dependency
160
160
  name: syntax_tree
161
161
  requirement: !ruby/object:Gem::Requirement