backburner 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +4 -0
- data/README.md +4 -0
- data/lib/backburner/version.rb +1 -1
- data/lib/backburner/worker.rb +20 -0
- metadata +4 -4
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -443,6 +443,10 @@ The best way to deploy these rake tasks is using a monitoring library. We sugges
|
|
443
443
|
which watches processes and ensures their stability. A simple God recipe for Backburner can be found in
|
444
444
|
[examples/god](https://github.com/nesquena/backburner/blob/master/examples/god.rb).
|
445
445
|
|
446
|
+
In Backburner, if the beanstalkd connection is temporarily severed, several retries to establish the connection will be attempted.
|
447
|
+
After several retries, if the connection is still not able to be made, a `Beaneater::NotConnected` exception will be raised.
|
448
|
+
You can manually catch this exception, and attempt another manual retry using `Backburner::Worker.retry_connection!`.
|
449
|
+
|
446
450
|
### Web Front-end
|
447
451
|
|
448
452
|
Be sure to check out the Sinatra-powered project [beanstalkd_view](https://github.com/denniskuczynski/beanstalkd_view)
|
data/lib/backburner/version.rb
CHANGED
data/lib/backburner/worker.rb
CHANGED
@@ -34,6 +34,8 @@ module Backburner
|
|
34
34
|
tube.put data.to_json, :pri => pri, :delay => delay, :ttr => ttr
|
35
35
|
Backburner::Hooks.invoke_hook_events(job_class, :after_enqueue, *args)
|
36
36
|
return true
|
37
|
+
rescue Beaneater::NotConnected => e
|
38
|
+
retry_connection!
|
37
39
|
end
|
38
40
|
|
39
41
|
# Starts processing jobs with the specified tube_names.
|
@@ -52,6 +54,24 @@ module Backburner
|
|
52
54
|
@connection ||= Connection.new(Backburner.configuration.beanstalk_url)
|
53
55
|
end
|
54
56
|
|
57
|
+
# Retries to make a connection to beanstalkd if that connection failed.
|
58
|
+
# @raise [Beaneater::NotConnected] If beanstalk fails to connect multiple times.
|
59
|
+
def self.retry_connection!(max_tries=5)
|
60
|
+
retry_count = 0
|
61
|
+
begin
|
62
|
+
@connection = nil
|
63
|
+
self.connection
|
64
|
+
rescue Beaneater::NotConnected => e
|
65
|
+
if retry_count < max_tries
|
66
|
+
retry_count += 1
|
67
|
+
sleep 0.5
|
68
|
+
retry
|
69
|
+
else # stop retrying
|
70
|
+
raise e
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end # retry_connection!
|
74
|
+
|
55
75
|
# List of tube names to be watched and processed
|
56
76
|
attr_accessor :tube_names
|
57
77
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backburner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-07-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: beaneater
|
@@ -169,7 +169,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
169
169
|
version: '0'
|
170
170
|
segments:
|
171
171
|
- 0
|
172
|
-
hash: -
|
172
|
+
hash: -4352332376795710100
|
173
173
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
174
|
none: false
|
175
175
|
requirements:
|
@@ -178,7 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
178
178
|
version: '0'
|
179
179
|
segments:
|
180
180
|
- 0
|
181
|
-
hash: -
|
181
|
+
hash: -4352332376795710100
|
182
182
|
requirements: []
|
183
183
|
rubyforge_project:
|
184
184
|
rubygems_version: 1.8.25
|