sqeduler 0.3.8 → 0.3.10

Sign up to get free protection for your applications and to get access to all the features.
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: