sqeduler 0.3.8 → 0.3.10

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
- SHA1:
3
- metadata.gz: fc8f53242c82f5b2583623eaf1f13174499e8f69
4
- data.tar.gz: 0bac580cbbff39bdfcf017dff4cfb9b7b7ba4884
2
+ SHA256:
3
+ metadata.gz: 312c937b7370a083916ace442ef8ad89da76bb2d4e89a7b0d6edd5c11996cd4a
4
+ data.tar.gz: e06a4931fae4a28357ebf26aa35b9169b3b67931a7b19c1f72b23806c03bbcfa
5
5
  SHA512:
6
- metadata.gz: 19fa97292de05c29aa8b9186d9f2792ee84544309a1b2528fb69695b0c2193cf1a2dad02abe56eacb13af2bf7d8464efeeb47dad52fbbca5f8dd891ca37770c4
7
- data.tar.gz: 1d5ccb85eec286410b5aa3975a8b30ec50cc18a3cd486e0788ef89842f4a9ef0869fd780ff24f527aba27bf6073af0328842a6142edaac30360a16612a3505c4
6
+ metadata.gz: 78144f23d5d25a39fa65c3cb3b344ce3432c2a99611c95442d9a3e15d433acc33c927854da220c91d3d98596afb0abd7a5ec0cd37ec6338a26a24f0675ec830d
7
+ data.tar.gz: d7e3322b6372565bfeb35d1f52954243a7ed68c4095b0e267b89e0c975a9a311eb96e00ac7dfe313ee7e24f9f69bc66cd75e142641b7a952021cacf465d718ee
data/.rubocop.yml CHANGED
@@ -1,8 +1,17 @@
1
+ Gemspec/RequiredRubyVersion:
2
+ Enabled: false
3
+
4
+ Layout/HashAlignment:
5
+ Enabled: false
6
+
7
+ Layout/LineLength:
8
+ Enabled: false
9
+
1
10
  Lint/EndAlignment:
2
- AlignWith: variable
11
+ EnforcedStyleAlignWith: variable
3
12
 
4
13
  # Setting off false-positives :(
5
- Lint/UnneededDisable:
14
+ Lint/RedundantCopDisableDirective:
6
15
  Enabled: false
7
16
 
8
17
  Metrics/AbcSize:
@@ -11,16 +20,30 @@ Metrics/AbcSize:
11
20
  Metrics/ClassLength:
12
21
  Max: 150
13
22
 
14
- # just a really annoying check, especially when logging
15
- Metrics/LineLength:
16
- Max: 120
17
-
18
23
  Metrics/MethodLength:
19
24
  Max: 25
20
25
 
26
+ Metrics/BlockLength:
27
+ Enabled: false
28
+
29
+ Naming:
30
+ Enabled: false
31
+
32
+ Style/GlobalStdStream:
33
+ Enabled: false
34
+
21
35
  Style/HashSyntax:
22
36
  EnforcedStyle: hash_rockets
23
37
 
38
+ Style/IfUnlessModifier:
39
+ Enabled: false
40
+
41
+ Style/NumericPredicate:
42
+ Enabled: false
43
+
44
+ Style/SoleNestedConditional:
45
+ Enabled: false
46
+
24
47
  Style/StringLiterals:
25
48
  EnforcedStyle: double_quotes
26
49
 
data/.travis.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.5
4
- - 2.3.1
3
+ - 2.6.6
4
+ - 2.7.2
5
5
  services:
6
6
  - redis-server
7
7
  before_install:
data/CHANGES.md CHANGED
@@ -1,3 +1,9 @@
1
+ ### 0.3.10 / 2023-06-20
2
+ * Support sidekiq-scheduler 5
3
+
4
+ ### 0.3.9 / 2022-05-19
5
+ * Support sidekiq-scheduler 4
6
+
1
7
  ### 0.3.8 / 2018-01-10
2
8
 
3
9
  * "NoMethodError: undefined method `constantize' for ..." error fixed in tests
data/Gemfile CHANGED
@@ -1,8 +1,15 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  source "https://www.rubygems.org"
3
4
 
4
5
  gemspec
5
6
 
6
- group :development do
7
- gem "kramdown"
8
- end
7
+ gem "bundler"
8
+ gem "kramdown"
9
+ gem "pry"
10
+ gem "rake"
11
+ gem "rspec", "~> 3.12"
12
+ gem "rubocop", "~> 1.51.0"
13
+ gem "rubocop-rspec"
14
+ gem "timecop"
15
+ gem "yard", "~> 0.9.11"
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require "bundler/gem_tasks"
4
4
 
@@ -11,4 +11,4 @@ RuboCop::RakeTask.new
11
11
  require "yard"
12
12
  task :doc => :yard
13
13
 
14
- task :default => [:spec, :rubocop]
14
+ task :default => %i[spec rubocop]
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  module Sqeduler
3
4
  # Simple config for Sqeduler::Service
4
5
  class Config
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  module Sqeduler
3
4
  # This is to ensure that if you set your jobs to run one a time and something goes wrong
4
5
  # causing a job to run for a long time, your lock won't expire.
@@ -6,7 +7,7 @@ module Sqeduler
6
7
  # rather than 20 of them.
7
8
  class LockMaintainer
8
9
  RUN_INTERVAL = 30
9
- RUN_JITTER = 1..5
10
+ RUN_JITTER = (1..5).freeze
10
11
 
11
12
  def initialize
12
13
  @class_with_locks = {}
@@ -24,8 +25,7 @@ module Sqeduler
24
25
  redis_lock.unlock
25
26
  end
26
27
  end
27
-
28
- rescue => ex
28
+ rescue StandardError => ex
29
29
  Service.logger.error "[#{self.class}] #{ex.class}, #{ex.message}"
30
30
  end
31
31
 
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  module Sqeduler
3
4
  # A unique lock value for reserving a lock across multiple hosts
4
5
  class LockValue
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "active_support/inflector"
2
4
 
3
5
  module Sqeduler
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  module Sqeduler
3
4
  # Uses eval_sha to execute server-side scripts on redis.
4
5
  # Avoids some of the potentially racey and brittle dependencies on Time-based
@@ -14,6 +15,7 @@ module Sqeduler
14
15
  @key = key
15
16
  @expiration = options[:expiration]
16
17
  raise ArgumentError, "Expiration must be provided!" unless @expiration
18
+
17
19
  @timeout = options[:timeout] || 5
18
20
  end
19
21
 
@@ -22,6 +24,7 @@ module Sqeduler
22
24
  "Try to acquire lock with #{key}, expiration: #{@expiration} sec, timeout: #{timeout} sec"
23
25
  )
24
26
  return true if locked?
27
+
25
28
  if poll_for_lock
26
29
  Service.logger.info "Acquired lock #{key} with value #{lock_value}"
27
30
  true
@@ -65,10 +68,12 @@ module Sqeduler
65
68
 
66
69
  def self.with_lock(key, options)
67
70
  raise "Block is required" unless block_given?
71
+
68
72
  mutex = new(key, options)
69
73
  unless mutex.lock
70
74
  raise LockTimeoutError, "Timed out trying to get #{key} lock. Exceeded #{mutex.timeout} sec"
71
75
  end
76
+
72
77
  begin
73
78
  yield
74
79
  ensure
@@ -93,6 +98,7 @@ module Sqeduler
93
98
  while Time.now - start < timeout || !ran_at_least_once
94
99
  locked = take_lock
95
100
  break if locked
101
+
96
102
  ran_at_least_once = true
97
103
  sleep SLEEP_TIME
98
104
  end
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  module Sqeduler
3
4
  # Extracts atomic Lua scripts for Redis.
4
5
  module RedisScripts
@@ -1,28 +1,32 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require "sidekiq"
3
4
  require "sidekiq-scheduler"
4
5
  module Sqeduler
5
6
  # Singleton class for configuring this Gem.
6
7
  class Service
7
8
  SCHEDULER_TIMEOUT = 60
8
- MINIMUM_REDIS_VERSION = "2.6.12".freeze
9
+ MINIMUM_REDIS_VERSION = "2.6.12"
9
10
 
10
11
  class << self
11
12
  attr_accessor :config
12
13
 
13
14
  def start
14
15
  raise "No config provided" unless config
16
+
15
17
  config_sidekiq_server
16
18
  config_sidekiq_client
17
19
  end
18
20
 
19
21
  def verify_redis_pool(redis_pool)
20
22
  return @verified if defined?(@verified)
23
+
21
24
  redis_pool.with do |redis|
22
25
  version = redis.info["redis_version"]
23
26
  unless Gem::Version.new(version) >= Gem::Version.new(MINIMUM_REDIS_VERSION)
24
27
  raise "Must be using redis >= #{MINIMUM_REDIS_VERSION}"
25
28
  end
29
+
26
30
  @verified = true
27
31
  end
28
32
  end
@@ -56,7 +60,7 @@ module Sqeduler
56
60
  end
57
61
 
58
62
  LockMaintainer.new.run if Service.config.maintain_locks
59
- Service.config.on_server_start.call(config) if Service.config.on_server_start
63
+ Service.config.on_server_start&.call(config)
60
64
  end
61
65
  end
62
66
 
@@ -64,9 +68,7 @@ module Sqeduler
64
68
  logger.info "Initializing Sidekiq client"
65
69
  ::Sidekiq.configure_client do |config|
66
70
  setup_sidekiq_redis(config)
67
- if Service.config.on_client_start
68
- Service.config.on_client_start.call(config)
69
- end
71
+ Service.config.on_client_start&.call(config)
70
72
 
71
73
  config.client_middleware do |chain|
72
74
  chain.add(Sqeduler::Middleware::KillSwitch)
@@ -76,13 +78,15 @@ module Sqeduler
76
78
 
77
79
  def setup_sidekiq_redis(config)
78
80
  return if Service.config.redis_hash.nil? || Service.config.redis_hash.empty?
81
+
79
82
  config.redis = Service.config.redis_hash
80
83
  end
81
84
 
82
85
  def parse_schedule(path)
83
86
  raise "Schedule file #{path} does not exist!" unless File.exist?(path)
87
+
84
88
  file_contents = File.read(path)
85
- YAML.load(ERB.new(file_contents).result)
89
+ YAML.safe_load(ERB.new(file_contents).result)
86
90
  end
87
91
 
88
92
  def scheduling?
@@ -112,13 +116,14 @@ module Sqeduler
112
116
  def logger
113
117
  return config.logger if config.logger
114
118
  return Rails.logger if defined?(Rails)
119
+
115
120
  raise ArgumentError, "No logger provided and Rails.logger cannot be inferred"
116
121
  end
117
122
 
118
123
  private
119
124
 
120
125
  def symbolize_keys(hash)
121
- hash.map { |k, v| [k.to_sym, v] }.to_h
126
+ hash.transform_keys(&:to_sym)
122
127
  end
123
128
  end
124
129
  end
@@ -1,9 +1,10 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  module Sqeduler
3
4
  # Super simple facade to match RufusScheduler's expectations of how
4
5
  # a trigger_lock behaves.
5
6
  class TriggerLock < RedisLock
6
- SCHEDULER_LOCK_KEY = "sidekiq_scheduler_lock".freeze
7
+ SCHEDULER_LOCK_KEY = "sidekiq_scheduler_lock"
7
8
 
8
9
  def initialize
9
10
  super(SCHEDULER_LOCK_KEY, :expiration => 60, :timeout => 0)
@@ -15,7 +16,7 @@ module Sqeduler
15
16
  # - return true if already acquired
16
17
  # - refresh the lock if already acquired
17
18
  refresh || super
18
- rescue
19
+ rescue StandardError
19
20
  false
20
21
  end
21
22
  end
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  module Sqeduler
3
- VERSION = "0.3.8".freeze
4
+ VERSION = "0.3.10"
4
5
  end
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require "benchmark"
3
4
  module Sqeduler
4
5
  module Worker
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Sqeduler
2
4
  module Worker
3
5
  # convenience module for including everything
@@ -1,14 +1,16 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  module Sqeduler
3
4
  module Worker
4
5
  # Uses Redis hashes to enabled and disable workers across multiple hosts.
5
6
  module KillSwitch
6
- SIDEKIQ_DISABLED_WORKERS = "sidekiq.disabled-workers".freeze
7
+ SIDEKIQ_DISABLED_WORKERS = "sidekiq.disabled-workers"
7
8
 
8
9
  def self.prepended(base)
9
10
  if base.ancestors.include?(Sqeduler::Worker::Callbacks)
10
11
  raise "Sqeduler::Worker::Callbacks must be the last module that you prepend."
11
12
  end
13
+
12
14
  base.extend(ClassMethods)
13
15
  end
14
16
 
@@ -29,7 +31,7 @@ module Sqeduler
29
31
 
30
32
  def disable
31
33
  Service.redis_pool.with do |redis|
32
- redis.hset(SIDEKIQ_DISABLED_WORKERS, name, Time.now)
34
+ redis.hset(SIDEKIQ_DISABLED_WORKERS, name, Time.now.to_s)
33
35
  Service.logger.warn "#{name} has been disabled"
34
36
  end
35
37
  end
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require "benchmark"
3
4
  require "active_support/core_ext/class/attribute"
4
5
 
@@ -25,6 +26,7 @@ module Sqeduler
25
26
  self.synchronize_jobs_timeout = opts[:timeout] || 5
26
27
  self.synchronize_jobs_expiration = opts[:expiration]
27
28
  return if synchronize_jobs_expiration
29
+
28
30
  raise ArgumentError, ":expiration is required!"
29
31
  end
30
32
 
@@ -62,7 +64,7 @@ module Sqeduler
62
64
 
63
65
  # callback for when the job expiration is too short, less < time it took
64
66
  # perform the actual work
65
- SCHEDULE_COLLISION_MARKER = "%s took %s but has an expiration of %p sec. Beware of race conditions!".freeze
67
+ SCHEDULE_COLLISION_MARKER = "%s took %s but has an expiration of %p sec. Beware of race conditions!"
66
68
  def on_schedule_collision(duration)
67
69
  Service.logger.warn(
68
70
  format(
data/lib/sqeduler.rb CHANGED
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require "active_support"
3
4
  require "sqeduler/version"
4
5
  require "sqeduler/config"
data/spec/config_spec.rb CHANGED
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require "spec_helper"
3
4
 
4
5
  RSpec.describe Sqeduler::Config do
data/spec/fixtures/env.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "sqeduler"
2
4
  require_relative "fake_worker"
3
5
 
@@ -10,7 +12,7 @@ Sqeduler::Service.config = Sqeduler::Config.new(
10
12
  :namespace => "sqeduler-tests"
11
13
  },
12
14
  :logger => Sidekiq.logger,
13
- :schedule_path => File.expand_path(File.dirname(__FILE__)) + "/schedule.yaml",
15
+ :schedule_path => "#{__dir__}/schedule.yaml",
14
16
  :on_server_start => proc do |_config|
15
17
  Sqeduler::Service.logger.info "Received on_server_start callback"
16
18
  end,
@@ -1,12 +1,13 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  # Sample worker for specs
3
4
  class FakeWorker
4
- JOB_RUN_PATH = "/tmp/job_run".freeze
5
- JOB_BEFORE_START_PATH = "/tmp/job_before_start".freeze
6
- JOB_SUCCESS_PATH = "/tmp/job_success".freeze
7
- JOB_FAILURE_PATH = "/tmp/job_failure".freeze
8
- JOB_LOCK_FAILURE_PATH = "/tmp/lock_failure".freeze
9
- SCHEDULE_COLLISION_PATH = "/tmp/schedule_collision".freeze
5
+ JOB_RUN_PATH = "/tmp/job_run"
6
+ JOB_BEFORE_START_PATH = "/tmp/job_before_start"
7
+ JOB_SUCCESS_PATH = "/tmp/job_success"
8
+ JOB_FAILURE_PATH = "/tmp/job_failure"
9
+ JOB_LOCK_FAILURE_PATH = "/tmp/lock_failure"
10
+ SCHEDULE_COLLISION_PATH = "/tmp/schedule_collision"
10
11
  include Sidekiq::Worker
11
12
  include Sqeduler::Worker::Everything
12
13
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
  require "./spec/fixtures/fake_worker"
3
5
 
@@ -16,13 +18,14 @@ RSpec.describe "Sidekiq integration" do
16
18
  end
17
19
 
18
20
  it "should start sidekiq, schedule FakeWorker, and verify that it ran" do
19
- path = File.expand_path(File.dirname(__FILE__)) + "/fixtures/env.rb"
21
+ path = "#{__dir__}/fixtures/env.rb"
20
22
  pid = Process.spawn "bundle exec sidekiq -r #{path}"
21
23
  puts "Spawned process #{pid}"
22
24
  timeout = 30
23
25
  start = Time.now
24
26
  while (Time.now - start) < timeout
25
27
  break if File.exist?(FakeWorker::JOB_RUN_PATH)
28
+
26
29
  sleep 0.5
27
30
  end
28
31
  Process.kill("INT", pid)
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require "spec_helper"
3
4
 
4
5
  RSpec.describe Sqeduler::LockMaintainer do
@@ -154,7 +155,7 @@ RSpec.describe Sqeduler::LockMaintainer do
154
155
 
155
156
  # Shouldn't be around once the job finished
156
157
  Sqeduler::Service.redis_pool.with do |redis|
157
- expect(redis.exists(lock_key)).to eq(false)
158
+ expect(redis.exists(lock_key)).to eq(0)
158
159
  end
159
160
  end
160
161
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  RSpec.describe Sqeduler::Middleware::KillSwitch do
data/spec/service_spec.rb CHANGED
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require "spec_helper"
3
4
 
4
5
  RSpec.describe Sqeduler::Service do
@@ -138,7 +139,7 @@ RSpec.describe Sqeduler::Service do
138
139
 
139
140
  before do
140
141
  described_class.config = Sqeduler::Config.new.tap do |config|
141
- config.redis_hash = REDIS_CONFIG.map { |k, v| [k.to_s, v] }.to_h
142
+ config.redis_hash = REDIS_CONFIG.transform_keys(&:to_s)
142
143
  config.logger = logger
143
144
  end
144
145
  end
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require "pry"
4
+ require "redis"
3
5
  require "rspec"
4
6
  require "sqeduler"
5
7
  require "timecop"
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
4
  require "sqeduler"
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require "spec_helper"
3
4
 
4
5
  RSpec.describe Sqeduler::TriggerLock do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
  require "./spec/fixtures/fake_worker"
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  RSpec.describe Sqeduler::Worker::Synchronization do
data/spec/worker_spec.rb CHANGED
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require "spec_helper"
3
4
  require "./spec/fixtures/fake_worker"
4
5
 
data/sqeduler.gemspec CHANGED
@@ -1,5 +1,6 @@
1
- # encoding: utf-8
2
- require File.expand_path("../lib/sqeduler/version", __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path("lib/sqeduler/version", __dir__)
3
4
 
4
5
  Gem::Specification.new do |gem|
5
6
  gem.name = "sqeduler"
@@ -19,16 +20,8 @@ Gem::Specification.new do |gem|
19
20
  gem.test_files = gem.files.grep(%r{(test|spec|features)/})
20
21
  gem.require_paths = ["lib"]
21
22
 
22
- gem.add_runtime_dependency "sidekiq"
23
- gem.add_runtime_dependency "redis-namespace"
24
- gem.add_runtime_dependency "sidekiq-scheduler", "~> 2.0"
25
23
  gem.add_runtime_dependency "activesupport"
26
-
27
- gem.add_development_dependency "bundler", "~> 1.10"
28
- gem.add_development_dependency "pry", "~> 0"
29
- gem.add_development_dependency "rake", "~> 10"
30
- gem.add_development_dependency "rspec", "~> 3.3"
31
- gem.add_development_dependency "rubocop", "~> 0.39.0"
32
- gem.add_development_dependency "timecop", "~> 0"
33
- gem.add_development_dependency "yard", "~> 0.9.11"
24
+ gem.add_runtime_dependency "redis-namespace"
25
+ gem.add_runtime_dependency "sidekiq", "< 7"
26
+ gem.add_runtime_dependency "sidekiq-scheduler", ">= 2.0", "< 6.0"
34
27
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sqeduler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.3.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jared Jenkins
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-17 00:00:00.000000000 Z
11
+ date: 2023-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: sidekiq
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -39,131 +39,39 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: sidekiq-scheduler
42
+ name: sidekiq
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - "<"
46
46
  - !ruby/object:Gem::Version
47
- version: '2.0'
47
+ version: '7'
48
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: '2.0'
54
+ version: '7'
55
55
  - !ruby/object:Gem::Dependency
56
- name: activesupport
56
+ name: sidekiq-scheduler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '2.0'
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: '6.0'
62
65
  type: :runtime
63
66
  prerelease: false
64
67
  version_requirements: !ruby/object:Gem::Requirement
65
68
  requirements:
66
69
  - - ">="
67
70
  - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: bundler
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '1.10'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '1.10'
83
- - !ruby/object:Gem::Dependency
84
- name: pry
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rake
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '10'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '10'
111
- - !ruby/object:Gem::Dependency
112
- name: rspec
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '3.3'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '3.3'
125
- - !ruby/object:Gem::Dependency
126
- name: rubocop
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: 0.39.0
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: 0.39.0
139
- - !ruby/object:Gem::Dependency
140
- name: timecop
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: yard
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: 0.9.11
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
71
+ version: '2.0'
72
+ - - "<"
165
73
  - !ruby/object:Gem::Version
166
- version: 0.9.11
74
+ version: '6.0'
167
75
  description: |2
168
76
  Works with Sidekiq scheduler to provides a highly available scheduler that can be run on
169
77
  multiple hosts. Also provides a convenient abstract class for Sidekiq workers.
@@ -218,7 +126,7 @@ homepage: https://rubygems.org/gems/sqeduler
218
126
  licenses:
219
127
  - Apache
220
128
  metadata: {}
221
- post_install_message:
129
+ post_install_message:
222
130
  rdoc_options: []
223
131
  require_paths:
224
132
  - lib
@@ -233,9 +141,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
141
  - !ruby/object:Gem::Version
234
142
  version: '0'
235
143
  requirements: []
236
- rubyforge_project:
237
- rubygems_version: 2.6.12
238
- signing_key:
144
+ rubygems_version: 3.4.13
145
+ signing_key:
239
146
  specification_version: 4
240
147
  summary: Common Sidekiq infrastructure for multi-host applications.
241
148
  test_files: