sidecloq 0.1.2 → 0.2.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
  SHA1:
3
- metadata.gz: 2200f8910f10b0ab912557cfd6a44db679702f03
4
- data.tar.gz: 04001b1fb882556311c1f5616d2c2ac82146caaf
3
+ metadata.gz: bc79f44db3f6f94b4de477d87b170b6a8f0af0bf
4
+ data.tar.gz: c2cdd0e3641298003d3ae8f3b8072876b86f8316
5
5
  SHA512:
6
- metadata.gz: 265280fbcf45861e28f5908c7b1e6a57b954f3e5d808add68967bec3e6a7ecb1589a24defc18dd873a198402dd4eb4396a0396fd71f92fa28fda3ca8a5afc3f6
7
- data.tar.gz: ab1195c4b10619e5cb76df19ea42daf7a77ec443d2bc7164714772ce4f9d5c0da53c704b08ad284c167b4598d88b19667e2a6d7f61174f71d028e1d07f9e86fa
6
+ metadata.gz: cd2cf8af352b2c6c3a77dff7e00ca9d2124cd0145a242390d4c874bc7cefdd638a8cca97531a0a86042e4513aa4b9b19ec3d6225298e586ceac9f32845889f08
7
+ data.tar.gz: efacb0bce951f43c692e03b07536321baea03d448ed5d463a65f83aaa10b1697ba1acbfd04fd296d9c5c5017d4264ffb66991f05ddaa53af8da6f7cee9d3155d
data/.travis.yml CHANGED
@@ -7,15 +7,21 @@ rvm:
7
7
  - 2.0.0
8
8
  - 2.1.8
9
9
  - 2.2.4
10
+ - 2.3.0
10
11
  - ruby-head
11
12
  - jruby-9.0.4.0
12
13
  - jruby-head
13
14
  - rbx-2.6
14
15
  - rbx-2.7
16
+ env:
17
+ - "sidekiq=master"
18
+ - "sidekiq=stable"
19
+ - "sidekiq=3.5.3"
15
20
  matrix:
16
21
  allow_failures:
17
22
  - rvm: ruby-head
18
23
  - rvm: jruby-head
24
+ - env: "sidekiq=master"
19
25
  addons:
20
26
  code_climate:
21
27
  repo_token: dee2fdcb3562533038a22e862c0fc91a6f1fa38730cd2b77177655e5b9507c83
data/Gemfile CHANGED
@@ -2,9 +2,19 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- platforms :mri do
5
+ platforms :mri, :rbx do
6
6
  gem 'pry'
7
7
  gem 'minitest-utils'
8
8
  end
9
9
 
10
+ # https://github.com/sinatra/sinatra/blob/master/Gemfile
11
+ sidekiq_dep =
12
+ case ENV['sidekiq']
13
+ when 'stable', nil then nil
14
+ when /(\d+\.)+\d+/ then "~> " + ENV['sidekiq'].sub("sidekiq-", '')
15
+ else {github: 'mperham/sidekiq', branch: ENV['sidekiq']}
16
+ end
17
+
18
+ gem 'sidekiq', sidekiq_dep
19
+
10
20
  gem 'codeclimate-test-reporter', group: :test, require: false
data/README.md CHANGED
@@ -45,6 +45,9 @@ Add this line to your application's Gemfile:
45
45
  gem 'sidecloq'
46
46
  ```
47
47
 
48
+ Tested on MRI > 2, JRuby and Rubinius. Basically, if you can run
49
+ Sidekiq, you can run Sidecloq.
50
+
48
51
  ## Configuration
49
52
 
50
53
  ### Quickstart
data/lib/sidecloq.rb CHANGED
@@ -44,8 +44,13 @@ module Sidecloq
44
44
  @runner.run
45
45
  end
46
46
 
47
+ def self.running?
48
+ !!@runner
49
+ end
50
+
47
51
  def self.shutdown
48
52
  @runner.stop(options[:timeout] || 10) if @runner
53
+ @runner = nil
49
54
  end
50
55
 
51
56
  def self.extract_schedule
@@ -56,6 +61,7 @@ module Sidecloq
56
61
 
57
62
  # try for a file
58
63
  options[:schedule_file] ||= 'config/sidecloq.yml'
64
+
59
65
  if File.exist?(options[:schedule_file])
60
66
  return Schedule.from_yaml(options[:schedule_file])
61
67
  elsif defined?(Rails)
@@ -6,6 +6,7 @@ module Sidecloq
6
6
  def initialize(schedule, options = {})
7
7
  @schedule = schedule
8
8
  @options = options
9
+ @loaded = Concurrent::Event.new
9
10
  end
10
11
 
11
12
  # run queues jobs per their schedules, blocking forever
@@ -14,30 +15,22 @@ module Sidecloq
14
15
  sync_with_redis
15
16
  logger.info('Starting scheduler')
16
17
  load_schedule_into_rufus
17
- logger.debug('Joining rufus thread')
18
18
  rufus.join
19
- logger.debug('Scheduler run ended')
20
19
  end
21
20
 
22
21
  def stop(timeout = nil)
23
22
  logger.info("Stopping scheduler (timeout: #{timeout})")
24
- if timeout
25
- t = Concurrent::ScheduledTask.new(timeout) do
26
- rufus.shutdown(:kill) if rufus.up?
27
- end
28
- Thread.new do
29
- rufus.shutdown(:wait)
30
- t.cancel
31
- end
32
- else
33
- rufus.shutdown(:wait)
34
- end
35
- rufus.join
23
+ rufus.shutdown(:kill)
24
+ rufus.thread.join(timeout)
36
25
  logger.info('Stopped scheduler')
37
26
  end
38
27
 
39
28
  private unless $TESTING
40
29
 
30
+ def wait_for_loaded
31
+ @loaded.wait
32
+ end
33
+
41
34
  def rufus
42
35
  @rufus ||= Rufus::Scheduler.new
43
36
  end
@@ -51,6 +44,7 @@ module Sidecloq
51
44
  @schedule.job_specs.each do |name, spec|
52
45
  load_into_rufus(name, spec)
53
46
  end
47
+ @loaded.set
54
48
  end
55
49
 
56
50
  def load_into_rufus(name, spec)
@@ -1,3 +1,3 @@
1
1
  module Sidecloq
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.0'
3
3
  end
data/sidetoq.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ['lib']
21
21
 
22
- spec.add_dependency 'sidekiq', '~> 4.0.1'
22
+ spec.add_dependency 'sidekiq', '>= 3.5.3', '< 5'
23
23
  spec.add_dependency 'redlock', '~> 0.1.2'
24
24
  # mimics some dev dependencies of sidekiq:
25
25
  spec.add_dependency 'concurrent-ruby'
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidecloq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Robinson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-24 00:00:00.000000000 Z
11
+ date: 2015-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sidekiq
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 3.5.3
20
+ - - "<"
18
21
  - !ruby/object:Gem::Version
19
- version: 4.0.1
22
+ version: '5'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 3.5.3
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: 4.0.1
32
+ version: '5'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: redlock
29
35
  requirement: !ruby/object:Gem::Requirement