resqutils 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +6 -0
- data/CODE_OF_CONDUCT.md +6 -0
- data/CONTRIBUTING.md +18 -0
- data/Gemfile.lock +22 -15
- data/gemfiles/rspec2.gemfile +7 -0
- data/gemfiles/rspec2.gemfile.lock +54 -0
- data/lib/resqutils/spec/resque_matchers.rb +14 -2
- data/lib/resqutils/stale_workers_killer.rb +2 -2
- data/lib/resqutils/version.rb +1 -1
- data/resqutils.gemspec +4 -3
- data/spec/resque_matchers_spec.rb +35 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/stale_workers_spec.rb +4 -1
- metadata +26 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a80c8babeebfe016d723913e3526e2b20970d672
|
4
|
+
data.tar.gz: 19828b603b4b2f7f991e03e2be56f4a441a29fae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1d995e26e2361f9d040631b922f1c495da746109a2ff9217f2dd544a7baa155281394b0729790c2b95c1cb38242a0c81ded71950ba43e61697ce5f2415203ea
|
7
|
+
data.tar.gz: ef07f5f0aa385e580f7bb6141ca61e27aaefe0aa31a466517fd9d105a10ba68cde2d898a5958a94a712f618eb3135cecffe74a16d5ef3b6d89f1829260d31ddc
|
data/.travis.yml
CHANGED
data/CODE_OF_CONDUCT.md
ADDED
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# Contributing
|
2
|
+
Thanks for using and improving *resqutils*! If you'd like to help out, check out [the project's issues list](https://github.com/stitchfix/resqutils/issues) for ideas on what could be improved. If there's an idea you'd like to propose, or a design change, feel free to file a new issue or send a pull request:
|
3
|
+
|
4
|
+
1. [Fork][fork] the repo.
|
5
|
+
1. [Create a topic branch.][branch]
|
6
|
+
1. Write tests.
|
7
|
+
1. Implement your feature or fix bug.
|
8
|
+
1. Add, commit, and push your changes.
|
9
|
+
1. [Submit a pull request.][pr]
|
10
|
+
|
11
|
+
[fork]: https://help.github.com/articles/fork-a-repo/
|
12
|
+
[branch]: https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/
|
13
|
+
[pr]: https://help.github.com/articles/using-pull-requests/
|
14
|
+
|
15
|
+
## General Guidelines
|
16
|
+
|
17
|
+
* When in doubt, test it. If you can't test it, re-think what you are doing.
|
18
|
+
* Code formatting and internal application architecture should be consistent.
|
data/Gemfile.lock
CHANGED
@@ -1,19 +1,21 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
resqutils (1.
|
4
|
+
resqutils (1.2.0)
|
5
5
|
resque
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://www.rubygems.org/
|
9
9
|
specs:
|
10
10
|
diff-lcs (1.2.5)
|
11
|
+
fakeredis (0.5.0)
|
12
|
+
redis (~> 3.0)
|
11
13
|
mono_logger (1.1.0)
|
12
|
-
multi_json (1.11.
|
13
|
-
rack (1.6.
|
14
|
+
multi_json (1.11.2)
|
15
|
+
rack (1.6.4)
|
14
16
|
rack-protection (1.5.3)
|
15
17
|
rack
|
16
|
-
rake (10.
|
18
|
+
rake (10.4.2)
|
17
19
|
redis (3.2.1)
|
18
20
|
redis-namespace (1.5.2)
|
19
21
|
redis (~> 3.0, >= 3.0.4)
|
@@ -23,18 +25,19 @@ GEM
|
|
23
25
|
redis-namespace (~> 1.3)
|
24
26
|
sinatra (>= 0.9.2)
|
25
27
|
vegas (~> 0.1.2)
|
26
|
-
rspec (3.
|
27
|
-
rspec-core (~> 3.
|
28
|
-
rspec-expectations (~> 3.
|
29
|
-
rspec-mocks (~> 3.
|
30
|
-
rspec-core (3.
|
31
|
-
rspec-support (~> 3.
|
32
|
-
rspec-expectations (3.1
|
28
|
+
rspec (3.3.0)
|
29
|
+
rspec-core (~> 3.3.0)
|
30
|
+
rspec-expectations (~> 3.3.0)
|
31
|
+
rspec-mocks (~> 3.3.0)
|
32
|
+
rspec-core (3.3.2)
|
33
|
+
rspec-support (~> 3.3.0)
|
34
|
+
rspec-expectations (3.3.1)
|
33
35
|
diff-lcs (>= 1.2.0, < 2.0)
|
34
|
-
rspec-support (~> 3.
|
35
|
-
rspec-mocks (3.
|
36
|
-
|
37
|
-
|
36
|
+
rspec-support (~> 3.3.0)
|
37
|
+
rspec-mocks (3.3.2)
|
38
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
39
|
+
rspec-support (~> 3.3.0)
|
40
|
+
rspec-support (3.3.0)
|
38
41
|
sinatra (1.4.6)
|
39
42
|
rack (~> 1.4)
|
40
43
|
rack-protection (~> 1.4)
|
@@ -47,6 +50,10 @@ PLATFORMS
|
|
47
50
|
ruby
|
48
51
|
|
49
52
|
DEPENDENCIES
|
53
|
+
fakeredis
|
50
54
|
rake
|
51
55
|
resqutils!
|
52
56
|
rspec
|
57
|
+
|
58
|
+
BUNDLED WITH
|
59
|
+
1.10.6
|
@@ -0,0 +1,54 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ../
|
3
|
+
specs:
|
4
|
+
resqutils (1.1.1)
|
5
|
+
resque
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://www.rubygems.org/
|
9
|
+
specs:
|
10
|
+
diff-lcs (1.2.5)
|
11
|
+
fakeredis (0.5.0)
|
12
|
+
redis (~> 3.0)
|
13
|
+
mono_logger (1.1.0)
|
14
|
+
multi_json (1.11.2)
|
15
|
+
rack (1.6.4)
|
16
|
+
rack-protection (1.5.3)
|
17
|
+
rack
|
18
|
+
rake (10.4.2)
|
19
|
+
redis (3.2.1)
|
20
|
+
redis-namespace (1.5.2)
|
21
|
+
redis (~> 3.0, >= 3.0.4)
|
22
|
+
resque (1.25.2)
|
23
|
+
mono_logger (~> 1.0)
|
24
|
+
multi_json (~> 1.0)
|
25
|
+
redis-namespace (~> 1.3)
|
26
|
+
sinatra (>= 0.9.2)
|
27
|
+
vegas (~> 0.1.2)
|
28
|
+
rspec (2.99.0)
|
29
|
+
rspec-core (~> 2.99.0)
|
30
|
+
rspec-expectations (~> 2.99.0)
|
31
|
+
rspec-mocks (~> 2.99.0)
|
32
|
+
rspec-core (2.99.2)
|
33
|
+
rspec-expectations (2.99.2)
|
34
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
35
|
+
rspec-mocks (2.99.4)
|
36
|
+
sinatra (1.4.6)
|
37
|
+
rack (~> 1.4)
|
38
|
+
rack-protection (~> 1.4)
|
39
|
+
tilt (>= 1.3, < 3)
|
40
|
+
tilt (2.0.1)
|
41
|
+
vegas (0.1.11)
|
42
|
+
rack (>= 1.0.0)
|
43
|
+
|
44
|
+
PLATFORMS
|
45
|
+
ruby
|
46
|
+
|
47
|
+
DEPENDENCIES
|
48
|
+
fakeredis
|
49
|
+
rake
|
50
|
+
resqutils!
|
51
|
+
rspec (~> 2)
|
52
|
+
|
53
|
+
BUNDLED WITH
|
54
|
+
1.10.6
|
@@ -12,7 +12,13 @@ RSpec::Matchers.define :have_job_queued do |expected_job_hash|
|
|
12
12
|
jobs_matching(queue_name,expected_job_hash).first.size == 1
|
13
13
|
end
|
14
14
|
|
15
|
-
|
15
|
+
failure_message_method = if defined?(failure_message)
|
16
|
+
:failure_message
|
17
|
+
else
|
18
|
+
:failure_message_for_should
|
19
|
+
end
|
20
|
+
|
21
|
+
send(failure_message_method) do |queue_name|
|
16
22
|
matching_jobs,all_jobs = jobs_matching(queue_name,expected_job_hash)
|
17
23
|
if matching_jobs.empty?
|
18
24
|
"No jobs in #{queue_name} matched #{expected_job_hash.inspect} (Found these jobs: #{all_jobs.map(&:inspect).join(',')})"
|
@@ -21,7 +27,13 @@ RSpec::Matchers.define :have_job_queued do |expected_job_hash|
|
|
21
27
|
end
|
22
28
|
end
|
23
29
|
|
24
|
-
|
30
|
+
failure_message_when_negated_method = if defined?(failure_message_when_negated)
|
31
|
+
:failure_message_when_negated
|
32
|
+
else
|
33
|
+
:failure_message_for_should_not
|
34
|
+
end
|
35
|
+
|
36
|
+
send(failure_message_when_negated_method) do |queue_name|
|
25
37
|
"Found job #{expected_job_hash.inspect} in the queue"
|
26
38
|
end
|
27
39
|
end
|
@@ -6,8 +6,8 @@ module Resqutils
|
|
6
6
|
self.new.kill_stale_workers
|
7
7
|
end
|
8
8
|
|
9
|
-
def initialize(
|
10
|
-
@stale_workers = stale_workers
|
9
|
+
def initialize(options={})
|
10
|
+
@stale_workers = options.fetch(:stale_workers, Resqutils::StaleWorkers.new)
|
11
11
|
end
|
12
12
|
def kill_stale_workers
|
13
13
|
@stale_workers.each do |worker|
|
data/lib/resqutils/version.rb
CHANGED
data/resqutils.gemspec
CHANGED
@@ -6,8 +6,8 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.name = "resqutils"
|
7
7
|
s.version = Resqutils::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
|
-
s.authors = [
|
10
|
-
s.email = [
|
9
|
+
s.authors = ["Stitch Fix Engineering","Dave Copeland","Simeon Willbanks"]
|
10
|
+
s.email = ["opensource@stitchfix.com","davetron5000@gmail.com","simeon@simeons.net"]
|
11
11
|
s.license = "Apache License Version 2.0, January 2004"
|
12
12
|
s.homepage = "https://github.com/stitchfix/resqutils"
|
13
13
|
s.summary = "Utilities for using Resque in a Rails app"
|
@@ -17,7 +17,8 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
|
-
s.
|
20
|
+
s.add_runtime_dependency("resque")
|
21
21
|
s.add_development_dependency("rake")
|
22
22
|
s.add_development_dependency("rspec")
|
23
|
+
s.add_development_dependency("fakeredis")
|
23
24
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rspec/version'
|
3
|
+
|
4
|
+
describe "Resque RSpec custom matchers" do
|
5
|
+
include Resqutils::Spec::ResqueHelpers
|
6
|
+
|
7
|
+
context "have_job_queued" do
|
8
|
+
class BackgroundJob
|
9
|
+
@queue = :low
|
10
|
+
|
11
|
+
def self.perform
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Service
|
16
|
+
def expensive
|
17
|
+
Resque.enqueue(BackgroundJob)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
before do
|
22
|
+
clear_queue(BackgroundJob)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "asserts Resque job has been queued" do
|
26
|
+
Service.new.expensive
|
27
|
+
|
28
|
+
if RSpec::Version::STRING.start_with?("2")
|
29
|
+
"low".should have_job_queued(class: BackgroundJob, args: [])
|
30
|
+
else
|
31
|
+
expect("low").to have_job_queued(class: BackgroundJob, args: [])
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/spec/spec_helper.rb
CHANGED
data/spec/stale_workers_spec.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resqutils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stitch Fix Engineering
|
8
|
+
- Dave Copeland
|
9
|
+
- Simeon Willbanks
|
8
10
|
autorequire:
|
9
11
|
bindir: bin
|
10
12
|
cert_chain: []
|
11
|
-
date: 2015-
|
13
|
+
date: 2015-11-19 00:00:00.000000000 Z
|
12
14
|
dependencies:
|
13
15
|
- !ruby/object:Gem::Dependency
|
14
16
|
name: resque
|
@@ -52,9 +54,25 @@ dependencies:
|
|
52
54
|
- - ">="
|
53
55
|
- !ruby/object:Gem::Version
|
54
56
|
version: '0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: fakeredis
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
55
71
|
description: Utilities for using Resque in a Rails app
|
56
72
|
email:
|
57
73
|
- opensource@stitchfix.com
|
74
|
+
- davetron5000@gmail.com
|
75
|
+
- simeon@simeons.net
|
58
76
|
executables: []
|
59
77
|
extensions: []
|
60
78
|
extra_rdoc_files: []
|
@@ -63,11 +81,15 @@ files:
|
|
63
81
|
- ".ruby-gemset"
|
64
82
|
- ".ruby-version"
|
65
83
|
- ".travis.yml"
|
84
|
+
- CODE_OF_CONDUCT.md
|
85
|
+
- CONTRIBUTING.md
|
66
86
|
- Gemfile
|
67
87
|
- Gemfile.lock
|
68
88
|
- LICENSE.txt
|
69
89
|
- README.md
|
70
90
|
- Rakefile
|
91
|
+
- gemfiles/rspec2.gemfile
|
92
|
+
- gemfiles/rspec2.gemfile.lock
|
71
93
|
- lib/resqutils.rb
|
72
94
|
- lib/resqutils/do_not_auto_retry.rb
|
73
95
|
- lib/resqutils/spec.rb
|
@@ -79,6 +101,7 @@ files:
|
|
79
101
|
- lib/resqutils/worker_killer_job.rb
|
80
102
|
- lib/resqutils/worker_task.rb
|
81
103
|
- resqutils.gemspec
|
104
|
+
- spec/resque_matchers_spec.rb
|
82
105
|
- spec/spec_helper.rb
|
83
106
|
- spec/stale_workers_killer_spec.rb
|
84
107
|
- spec/stale_workers_spec.rb
|
@@ -109,6 +132,7 @@ signing_key:
|
|
109
132
|
specification_version: 4
|
110
133
|
summary: Utilities for using Resque in a Rails app
|
111
134
|
test_files:
|
135
|
+
- spec/resque_matchers_spec.rb
|
112
136
|
- spec/spec_helper.rb
|
113
137
|
- spec/stale_workers_killer_spec.rb
|
114
138
|
- spec/stale_workers_spec.rb
|