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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '08b8517cbb1f57938ca8337f54bd804e402d176070934398dfd53ab1b00b5b2f'
4
- data.tar.gz: 2d70f148236b793e71d276e5acd72403d4945a23d33f36121f081ec7b2ee3f0e
3
+ metadata.gz: 37ecc0b4a10699fd62aa9f20cd0c6effa899f8050d5af0affc4f3783b146957e
4
+ data.tar.gz: 2734787f2ee9a92b708a800a279cf0b7d06daae4067551586f5f20888b6bfbe0
5
5
  SHA512:
6
- metadata.gz: fa584d657e08dfbcfd0f0f7dc05d7da2b4884423a7140afbeedf8381b5dc475823c312e0c08e0ecf0a7461fc0c6cc36f39e19df0d4a80d35b03135431d300a64
7
- data.tar.gz: a1c34182f330304932e95a94c75a9366444be9bbedf88fc41cb3c8d359de13d5f1bdda957966b1399b66d96e901dcc165f34d5f456f6e521e070ac539ea5f107
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
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ source "https://rubygems.org"
3
+
4
+ gemspec path: ".."
5
+
6
+ gem "sidekiq", "~> 6.5.0"
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ source "https://rubygems.org"
3
+
4
+ gemspec path: ".."
5
+
6
+ gem "sidekiq", "~> 7.0.0"
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ source "https://rubygems.org"
3
+
4
+ gemspec path: ".."
5
+
6
+ gem "sidekiq", "~> 7.1.0"
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ source "https://rubygems.org"
3
+
4
+ gemspec path: ".."
5
+
6
+ gem "sidekiq", "~> 7.2.0"
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ source "https://rubygems.org"
3
+
4
+ gemspec path: ".."
5
+
6
+ gem "sidekiq", "~> 7.3.0"
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ source "https://rubygems.org"
3
+
4
+ gemspec path: ".."
5
+
6
+ gem "sidekiq", "~> 8.0.0"
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ source "https://rubygems.org"
3
+
4
+ gemspec path: ".."
5
+
6
+ gem "sidekiq", "~> 8.1.0"
@@ -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.stop!
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.worker_thread_ids] if ids.size == 0
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 => e
397
+ rescue StandardError
398
398
  begin
399
399
  `hostname`.strip
400
- rescue => e
400
+ rescue StandardError
401
401
  "unknown_host"
402
402
  end
403
403
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MiniScheduler
4
- VERSION = "0.17.0"
4
+ VERSION = "0.19.0"
5
5
  end
@@ -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
- class SidekiqExceptionHandler
20
- if defined?(Sidekiq::ExceptionHandler)
21
- extend Sidekiq::ExceptionHandler
22
- else
23
- def self.handle_exception(exception, context)
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.handle_exception(ex, context)
36
+ SidekiqExceptionHandler.call(ex, context)
39
37
  end
40
38
  end
41
39
 
@@ -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.7.0"
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", ">= 4.2.3", "< 7.0"
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", "~> 2.0"
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.17.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: 2024-08-08 00:00:00.000000000 Z
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: 4.2.3
19
+ version: '6.5'
21
20
  - - "<"
22
21
  - !ruby/object:Gem::Version
23
- version: '7.0'
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: 4.2.3
29
+ version: '6.5'
31
30
  - - "<"
32
31
  - !ruby/object:Gem::Version
33
- version: '7.0'
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: '2.0'
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: '2.0'
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.7.0
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.5.11
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: []