job_queue 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION.yml +2 -2
- data/lib/job_queue/adapters/beanstalk_adapter.rb +4 -0
- data/spec/beanstalk_adapter_spec.rb +58 -0
- metadata +2 -2
data/VERSION.yml
CHANGED
@@ -39,6 +39,10 @@ class JobQueue::BeanstalkAdapter
|
|
39
39
|
end
|
40
40
|
rescue Beanstalk::TimedOut
|
41
41
|
# Do nothing - retry to reseve (from another host?)
|
42
|
+
rescue Beanstalk::NotConnected
|
43
|
+
JobQueue.logger.fatal "Could not connect any beanstalk hosts. " \
|
44
|
+
"Retrying in 1s."
|
45
|
+
sleep 1
|
42
46
|
rescue => e
|
43
47
|
if job
|
44
48
|
error_report.call(job.body, e)
|
@@ -211,6 +211,64 @@ describe JobQueue::BeanstalkAdapter do
|
|
211
211
|
end
|
212
212
|
end
|
213
213
|
|
214
|
+
describe "when no instances are available it should not kill the CPU by relentlessly trying to connect to beanstalk, rather it should retry and print a warning every second" do
|
215
|
+
it "(case that 0/1 instances available)" do
|
216
|
+
JobQueue.adapter = JobQueue::BeanstalkAdapter.new
|
217
|
+
|
218
|
+
system "killall beanstalkd"
|
219
|
+
|
220
|
+
JobQueue.logger.should_receive(:fatal).twice
|
221
|
+
|
222
|
+
begin
|
223
|
+
Timeout.timeout(1.1) do
|
224
|
+
JobQueue.subscribe do |job|
|
225
|
+
puts job
|
226
|
+
end
|
227
|
+
end
|
228
|
+
rescue Timeout::Error
|
229
|
+
nil
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
233
|
+
it "(case that 0/2 instances available)" do
|
234
|
+
JobQueue.adapter = JobQueue::BeanstalkAdapter.new({
|
235
|
+
:hosts => ['localhost:10001', 'localhost:10002']
|
236
|
+
})
|
237
|
+
|
238
|
+
system "killall beanstalkd"
|
239
|
+
|
240
|
+
JobQueue.logger.should_receive(:fatal).twice
|
241
|
+
|
242
|
+
begin
|
243
|
+
Timeout.timeout(1.1) do
|
244
|
+
JobQueue.subscribe do |job|
|
245
|
+
puts job
|
246
|
+
end
|
247
|
+
end
|
248
|
+
rescue Timeout::Error
|
249
|
+
nil
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
it "(case that 1/2 instances available)" do
|
254
|
+
JobQueue.adapter = JobQueue::BeanstalkAdapter.new({
|
255
|
+
:hosts => ['localhost:10001', 'localhost:10009']
|
256
|
+
})
|
257
|
+
|
258
|
+
JobQueue.logger.should_not_receive(:fatal)
|
259
|
+
|
260
|
+
begin
|
261
|
+
Timeout.timeout(1.1) do
|
262
|
+
JobQueue.subscribe do |job|
|
263
|
+
puts job
|
264
|
+
end
|
265
|
+
end
|
266
|
+
rescue Timeout::Error
|
267
|
+
nil
|
268
|
+
end
|
269
|
+
end
|
270
|
+
end
|
271
|
+
|
214
272
|
describe "when connecting to one instance" do
|
215
273
|
before :each do
|
216
274
|
JobQueue.adapter = JobQueue::BeanstalkAdapter.new
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: job_queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martyn Loughran
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-09-02 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|