resque-cluster 0.0.7 → 0.1.0

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
2
  SHA1:
3
- metadata.gz: c01c8144464501ef2314afdc09a673a490580f83
4
- data.tar.gz: c31b0a48f3474c61f1ae76e9816432d12c93e4db
3
+ metadata.gz: e96876443565b4a3fef28d7dae88609a63be88ec
4
+ data.tar.gz: a0e059de0e63935b1ebb9fac9e8b6c127c14ce97
5
5
  SHA512:
6
- metadata.gz: 7689f5f5c61d328fe92f805d2273beb0468a66c6165b696122a99317c4930305f1891fab1487a4b7014b031ba7bc3c76f71036ebe8ea3ad5d7b0657c682b870c
7
- data.tar.gz: 7147b14db7ec1f9051b849a9b6bcb2735205c3ee540fe97631cf29056b2351116400f2c21cd24bcded0ff4cd17a699fdc3d2653bdbdb447126b2846748b3363e
6
+ metadata.gz: 9ee6e19fc9f2425183a3bd6eadd9a6aeabddc18db2155ff70cabe354bd9d1ae8fb7121e9963caed54f8fe41a725252dc8f5c27102e8e0aad9f5441f0073c1735
7
+ data.tar.gz: 6b5832fac350df9dde1e1032904adc6bdb07fe429ffbe92e10953ae2983feeb1c0d8138ecadb3ef09542ee0af75cf934555dd6f781162d2ebefb4cb05fcdb5f7
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  gem 'resque-pool', '~> 0.5.0'
4
- gem 'gru', '= 0.1.0'
4
+ gem 'gru', '= 0.1.1'
5
5
 
6
6
  group :development do
7
7
  gem 'pry'
data/Gemfile.lock CHANGED
@@ -23,7 +23,7 @@ GEM
23
23
  multi_json (>= 1.7.5, < 2.0)
24
24
  nokogiri (~> 1.6.3)
25
25
  oauth2
26
- gru (0.1.0)
26
+ gru (0.1.1)
27
27
  redis (> 0.0)
28
28
  hashie (3.4.2)
29
29
  highline (1.7.2)
@@ -121,7 +121,7 @@ PLATFORMS
121
121
  DEPENDENCIES
122
122
  awesome_print
123
123
  bundler (~> 1.0)
124
- gru (= 0.1.0)
124
+ gru (= 0.1.1)
125
125
  jeweler (~> 2.0.1)
126
126
  mock_redis (~> 0.15.0)
127
127
  pry
@@ -87,13 +87,14 @@ module Resque
87
87
 
88
88
  def cluster_member_settings
89
89
  {
90
- cluster_maximums: @global_config["global_maximums"] || @global_config,
91
- host_maximums: @local_config,
92
- client_settings: Resque.redis.client.options,
93
- rebalance_flag: @global_config["rebalance_cluster"] || false,
94
- cluster_name: Cluster.config[:cluster_name],
95
- environment_name: Cluster.config[:environment],
96
- presume_host_dead_after: @global_config["presume_dead_after"] || 120,
90
+ cluster_maximums: @global_config["global_maximums"] || @global_config,
91
+ host_maximums: @local_config,
92
+ client_settings: Resque.redis.client.options,
93
+ rebalance_flag: @global_config["rebalance_cluster"] || false,
94
+ max_workers_per_host: @global_config["max_workers_per_host"] || nil,
95
+ cluster_name: Cluster.config[:cluster_name],
96
+ environment_name: Cluster.config[:environment],
97
+ presume_host_dead_after: @global_config["presume_dead_after"] || 120,
97
98
  manage_worker_heartbeats: true
98
99
  }
99
100
  end
@@ -1,5 +1,5 @@
1
1
  module Resque
2
2
  class Cluster
3
- VERSION = '0.0.7'
3
+ VERSION = '0.1.0'
4
4
  end
5
5
  end
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ["lib"]
20
20
 
21
21
  s.add_dependency 'resque-pool', '~> 0.5.0'
22
- s.add_dependency 'gru', '0.0.10'
22
+ s.add_dependency 'gru', '0.1.1'
23
23
 
24
24
  s.add_development_dependency 'pry', '> 0.0'
25
25
  s.add_development_dependency 'awesome_print', '> 0.0'
@@ -6,6 +6,7 @@ LOCAL_CONFIG2 = "spec/integration/config/local_config2.yml"
6
6
  GLOBAL_CONFIG2 = "spec/integration/config/global_config2.yml"
7
7
  GLOBAL_REBALANCE_CONFIG2 = "spec/integration/config/global_rebalance_config2.yml"
8
8
  GLOBAL_CONFIG3 = "spec/integration/config/global_config3.yml"
9
+ GLOBAL_CONFIG4 = "spec/integration/config/global_config4.yml"
9
10
 
10
11
  RSpec.describe "Resque test-cluster" do
11
12
  context "Spin Up and Down" do
@@ -222,4 +223,39 @@ RSpec.describe "Resque test-cluster" do
222
223
 
223
224
  end
224
225
 
226
+ context "Cluster with Rebalancing And max_workers_per_host set" do
227
+ before :all do
228
+ @g = TestMemberManager.new(LOCAL_CONFIG2, GLOBAL_CONFIG4)
229
+ @h = TestMemberManager.new(LOCAL_CONFIG2, GLOBAL_CONFIG4)
230
+ @i = TestMemberManager.new(LOCAL_CONFIG2, GLOBAL_CONFIG4)
231
+ @g.start
232
+ @h.start
233
+ @i.start
234
+ sleep(5) # rebalance time
235
+ end
236
+
237
+ it 'expects counts to be correct after workers get spun up' do
238
+ expect(TestMemberManager.counts).to eq({"star"=>12})
239
+ expect(@g.counts).to eq({"star"=>4})
240
+ expect(@h.counts).to eq({"star"=>4})
241
+ expect(@g.counts).to eq({"star"=>4})
242
+ end
243
+
244
+ it 'adjusts correctly when a member stops' do
245
+ @g.stop
246
+ expect(TestMemberManager.counts).to eq({"star"=>10})
247
+ expect(@g.counts).to be_empty
248
+ expect(@h.counts).to eq({"star"=>5})
249
+ expect(@i.counts).to eq({"star"=>5})
250
+ @h.stop
251
+ @i.stop
252
+ end
253
+
254
+ after :all do
255
+ TestMemberManager.stop_all
256
+ end
257
+
258
+ end
259
+
260
+
225
261
  end
@@ -0,0 +1,4 @@
1
+ global_maximums:
2
+ star: 12
3
+ max_workers_per_host: 5
4
+ rebalance_cluster: true
@@ -28,6 +28,7 @@ RSpec.describe Resque::Cluster::Member do
28
28
  :client_settings => @redis.client.options,
29
29
  :rebalance_flag => false,
30
30
  :presume_host_dead_after => 120,
31
+ :max_workers_per_host => nil,
31
32
  :cluster_name => "unit-test-cluster",
32
33
  :environment_name => "unit-test",
33
34
  :manage_worker_heartbeats => true
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resque-cluster
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yasha Portnoy
@@ -14,14 +14,14 @@ dependencies:
14
14
  name: resque-pool
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.5.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
26
  version: 0.5.0
27
27
  - !ruby/object:Gem::Dependency
@@ -30,138 +30,138 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.0.10
33
+ version: 0.1.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.0.10
40
+ version: 0.1.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>'
45
+ - - ">"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>'
52
+ - - ">"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: awesome_print
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>'
59
+ - - ">"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>'
66
+ - - ">"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 3.1.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 3.1.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rdoc
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '3.12'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '3.12'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: bundler
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: '1.7'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '1.7'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: jeweler
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ~>
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: 2.0.1
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ~>
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: 2.0.1
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: simplecov
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '>='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rubocop
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ~>
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0.31'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ~>
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0.31'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: mock_redis
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ~>
157
+ - - "~>"
158
158
  - !ruby/object:Gem::Version
159
159
  version: 0.15.0
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ~>
164
+ - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: 0.15.0
167
167
  description: A management tool for resque workers. Allows spinning up and managing
@@ -172,10 +172,10 @@ executables:
172
172
  extensions: []
173
173
  extra_rdoc_files: []
174
174
  files:
175
- - .document
176
- - .gitignore
177
- - .rspec
178
- - .rubocop.yml
175
+ - ".document"
176
+ - ".gitignore"
177
+ - ".rspec"
178
+ - ".rubocop.yml"
179
179
  - Gemfile
180
180
  - Gemfile.lock
181
181
  - LICENSE.txt
@@ -195,6 +195,7 @@ files:
195
195
  - spec/integration/config/global_config.yml
196
196
  - spec/integration/config/global_config2.yml
197
197
  - spec/integration/config/global_config3.yml
198
+ - spec/integration/config/global_config4.yml
198
199
  - spec/integration/config/global_rebalance_config2.yml
199
200
  - spec/integration/config/local_config.yml
200
201
  - spec/integration/config/local_config2.yml
@@ -216,17 +217,17 @@ require_paths:
216
217
  - lib
217
218
  required_ruby_version: !ruby/object:Gem::Requirement
218
219
  requirements:
219
- - - '>='
220
+ - - ">="
220
221
  - !ruby/object:Gem::Version
221
222
  version: '0'
222
223
  required_rubygems_version: !ruby/object:Gem::Requirement
223
224
  requirements:
224
- - - '>='
225
+ - - ">="
225
226
  - !ruby/object:Gem::Version
226
227
  version: '0'
227
228
  requirements: []
228
229
  rubyforge_project:
229
- rubygems_version: 2.2.2
230
+ rubygems_version: 2.5.1
230
231
  signing_key:
231
232
  specification_version: 4
232
233
  summary: Creates and manages resque worker in a distributed cluster
@@ -238,6 +239,7 @@ test_files:
238
239
  - spec/integration/config/global_config.yml
239
240
  - spec/integration/config/global_config2.yml
240
241
  - spec/integration/config/global_config3.yml
242
+ - spec/integration/config/global_config4.yml
241
243
  - spec/integration/config/global_rebalance_config2.yml
242
244
  - spec/integration/config/local_config.yml
243
245
  - spec/integration/config/local_config2.yml
@@ -249,4 +251,3 @@ test_files:
249
251
  - spec/unit/resque_pool_cli_patches_spec.rb
250
252
  - spec/unit/resque_pool_patches_spec.rb
251
253
  - spec/unit/spec_helper.rb
252
- has_rdoc: