sidetiq 0.4.0 → 0.4.1

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: d9aeea39b2397a68571939038f6aa704d7d82ea2
4
- data.tar.gz: 96f94bd883e67ecab0d63ce4a7afaa655e67fa00
3
+ metadata.gz: 3baafa1fdc03a9ebae36e49a19cc51c4480ff400
4
+ data.tar.gz: 96e849289c2324d0942014256e3ff2de5748dd64
5
5
  SHA512:
6
- metadata.gz: 24a9e7de6f0e33660867a0eaab73139a0509339e0e34b0691656026a671a8ef0aea4bd01522660b457146339a908fe7a583782d26b2d5d9000b4c24fe07f804e
7
- data.tar.gz: 1913b8bd90640e4a0574b6b7555fd7c601b23b03bf4ac9d8ccfc4594393ad4b24d6d28d3959b7a7d899c92b2a3a73ec32e18260650ecceae3b4d5d05907e6145
6
+ metadata.gz: 57d0a387e531eb91be1bb19266e4e2a9fd2e84e9da0658d5d7c955bb977ef548385b72db30201f3f07956796017f3e1d705ac91a14e0363c8b4899f5e860fb93
7
+ data.tar.gz: 5e56ab0f15722182c346c5e97a4c6d4211522a634e61bcd281aeaa146b35c2d3873ff8ef7ee13bd37c572608954cd8beb182a02e3dfef2f2f600e97b5ad94595
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ 0.4.1
2
+ -----
3
+
4
+ - Use Sidekiq's JSON wrappers instead of the json gem directly.
5
+ - Allow tick used by Clock#tick to be overridden.
6
+ - Bump Sidekiq dependency to >= 2.15.0
7
+
1
8
  0.4.0
2
9
  -----
3
10
 
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
- Sidetiq
2
- =======
1
+ ![Sidetiq](http://f.cl.ly/items/1W3k0R2V2x3n3S1t1M0B/sidetiq.png)
2
+ =========
3
3
 
4
4
  [![Build Status](https://travis-ci.org/tobiassvn/sidetiq.png)](https://travis-ci.org/tobiassvn/sidetiq)
5
5
  [![Dependency Status](https://gemnasium.com/tobiassvn/sidetiq.png)](https://gemnasium.com/tobiassvn/sidetiq)
@@ -13,14 +13,16 @@ Overview
13
13
 
14
14
  Sidetiq provides a simple API for defining recurring workers for Sidekiq.
15
15
 
16
- - Cuncurrency and fault-tolerance using Celluloid actors.
16
+ - Concurrency and fault-tolerance using Celluloid actors.
17
17
 
18
- - Flexible DSL based on [ice_cube](http://seejohnrun.github.com/ice_cube/)
18
+ - Flexible DSL based on [ice_cube](http://seejohnrun.github.com/ice_cube/).
19
19
 
20
20
  - Distributed, Redis-based locking to synchronize multiple Sidetiq processes.
21
21
 
22
22
  - Web extension with extensive monitoring of recurring jobs.
23
23
 
24
+ - Sidetiq runs in your Sidekiq processes. No extra resources required.
25
+
24
26
  Usage
25
27
  -----
26
28
 
data/lib/sidetiq/clock.rb CHANGED
@@ -42,8 +42,7 @@ module Sidetiq
42
42
  # # => Hash of Sidetiq::Schedule objects
43
43
  #
44
44
  # Returns a hash of Sidetiq::Schedule instances.
45
- def tick
46
- tick = gettime
45
+ def tick(tick = gettime)
47
46
  Sidetiq.workers.each do |worker|
48
47
  Sidetiq.handler.dispatch(worker, tick)
49
48
  end
@@ -13,12 +13,12 @@ module Sidetiq
13
13
  end
14
14
 
15
15
  def from_json(json = "")
16
- # Avoid TypeError when nil is passed to JSON.parse.
16
+ # Avoid TypeError when nil is passed to Sidekiq.load_json.
17
17
  json = "" if json.nil?
18
18
 
19
- hash = JSON.parse(json, symbolize_names: true)
19
+ hash = Sidekiq.load_json(json).symbolize_keys
20
20
  new(hash)
21
- rescue JSON::ParserError => e
21
+ rescue StandardError => e
22
22
  if json != ""
23
23
  # Looks like garbage lock metadata, so report it.
24
24
  handle_exception(e, context: "Garbage lock meta data detected: #{json}")
@@ -41,7 +41,7 @@ module Sidetiq
41
41
  Sidekiq.redis do |redis|
42
42
  list_name = "sidetiq:#{worker.class.name}:history"
43
43
 
44
- redis.lpush(list_name, JSON.dump(entry))
44
+ redis.lpush(list_name, Sidekiq.dump_json(entry))
45
45
  redis.ltrim(list_name, 0, Sidetiq.config.worker_history - 1)
46
46
  end
47
47
  end
@@ -8,7 +8,7 @@ module Sidetiq
8
8
  MINOR = 4
9
9
 
10
10
  # Public: Sidetiq patch level.
11
- PATCH = 0
11
+ PATCH = 1
12
12
 
13
13
  # Public: Sidetiq version suffix.
14
14
  SUFFIX = nil
@@ -19,7 +19,7 @@
19
19
  </thead>
20
20
 
21
21
  <% @history.each do |entry| %>
22
- <% entry = JSON.parse(entry, symbolize_names: true) %>
22
+ <% entry = Sidekiq.load_json(entry).symbolize_keys %>
23
23
  <tr class="<%= 'error' if entry[:status] == 'failure' %>">
24
24
  <td><%= entry[:status].capitalize %></td>
25
25
  <td><%= Time.parse(entry[:timestamp]).strftime("%m/%d/%Y %I:%M:%S%p") %></td>
data/sidetiq.gemspec CHANGED
@@ -19,10 +19,9 @@ Gem::Specification.new do |gem|
19
19
  gem.require_paths = ["lib"]
20
20
  gem.extensions = []
21
21
 
22
- gem.add_dependency 'sidekiq', '~> 2.14.0'
22
+ gem.add_dependency 'sidekiq', '~> 2.15.0'
23
23
  gem.add_dependency 'celluloid', '>= 0.14.1'
24
24
  gem.add_dependency 'ice_cube', '~> 0.11.0'
25
- gem.add_dependency 'json'
26
25
 
27
26
  gem.add_development_dependency 'rake'
28
27
  gem.add_development_dependency 'sinatra'
data/test/helper.rb CHANGED
@@ -34,13 +34,13 @@ end
34
34
  class Sidekiq::Client
35
35
  # Sidekiq testing helper now overwrites raw_push so we need to use
36
36
  # raw_push_old below to keep tests as is.
37
- # https://github.com/mperham/sidekiq/blob/v2.12.4/lib/sidekiq/client.rb#L39
37
+ # https://github.com/mperham/sidekiq/blob/master/lib/sidekiq/testing.rb
38
38
  def self.push_old(item)
39
39
  normed = normalize_item(item)
40
40
  payload = process_single(item['class'], normed)
41
41
 
42
42
  pushed = false
43
- pushed = raw_push_old([payload]) if payload
43
+ pushed = self.__send__(:raw_push_real, [payload]) if payload
44
44
  pushed ? payload['jid'] : nil
45
45
  end
46
46
  end
data/test/test_history.rb CHANGED
@@ -13,7 +13,7 @@ class TestHistory < Sidetiq::TestCase
13
13
  redis.lrange('sidetiq:TestHistory::HistoryWorker:history', 0, -1)
14
14
  end
15
15
 
16
- actual = JSON.parse(entry[0], symbolize_names: true)
16
+ actual = Sidekiq.load_json(entry[0]).symbolize_keys
17
17
 
18
18
  assert_equal 'success', actual[:status]
19
19
 
@@ -37,7 +37,7 @@ class TestHistory < Sidetiq::TestCase
37
37
  redis.lrange('sidetiq:TestHistory::HistoryWorker:history', 0, -1)
38
38
  end
39
39
 
40
- actual = JSON.parse(entry[0], symbolize_names: true)
40
+ actual = Sidekiq.load_json(entry[0]).symbolize_keys
41
41
 
42
42
  assert_equal 'failure', actual[:status]
43
43
 
@@ -78,7 +78,7 @@ class TestLockMetaData < Sidetiq::TestCase
78
78
  hash = { timestamp: 42, owner: "me", key: "foobar" }
79
79
  md = Sidetiq::Lock::MetaData.new(hash)
80
80
 
81
- assert_equal hash, JSON.parse(md.to_json, symbolize_names: true)
81
+ assert_equal hash, Sidekiq.load_json(md.to_json).symbolize_keys
82
82
  end
83
83
 
84
84
  def test_to_s
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidetiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Svensson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-18 00:00:00.000000000 Z
11
+ date: 2013-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sidekiq
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 2.14.0
19
+ version: 2.15.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: 2.14.0
26
+ version: 2.15.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: celluloid
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.11.0
55
- - !ruby/object:Gem::Dependency
56
- name: json
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '>='
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rake
71
57
  requirement: !ruby/object:Gem::Requirement