beanstalk-worker 0.1.1 → 0.1.2
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.
- data/lib/beanstalk-worker.rb +1 -1
- data/lib/beanstalk-worker/worker.rb +29 -8
- metadata +54 -22
- checksums.yaml +0 -7
data/lib/beanstalk-worker.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'beanstalk-client'
|
2
2
|
|
3
3
|
class BeanStalk::Worker
|
4
|
-
attr_accessor :config, :log, :
|
4
|
+
attr_accessor :config, :log, :connection, :stats
|
5
5
|
|
6
6
|
def initialize(config = {})
|
7
7
|
@config = BeanStalk::Worker::Config
|
@@ -21,22 +21,40 @@ class BeanStalk::Worker
|
|
21
21
|
initialize_beanstalk
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
25
|
-
@
|
24
|
+
def beanstalk
|
25
|
+
@connection ||= Beanstalk::Pool.new([
|
26
26
|
BeanStalk::Worker::Config.beanstalk_uri
|
27
27
|
])
|
28
|
+
@logger.info("Connected to beanstalk")
|
29
|
+
rescue
|
30
|
+
@logger.error("Could not connect to beanstalk.")
|
31
|
+
reconnect
|
32
|
+
end
|
33
|
+
|
34
|
+
def initialize_beanstalk
|
35
|
+
# @beanstalk = Beanstalk::Pool.new([
|
36
|
+
# BeanStalk::Worker::Config.beanstalk_uri
|
37
|
+
# ])
|
28
38
|
|
29
|
-
|
30
|
-
|
31
|
-
|
39
|
+
beanstalk.watch(@config[:beanstalk][:tube])
|
40
|
+
beanstalk.use(@config[:beanstalk][:tube])
|
41
|
+
beanstalk.ignore('default')
|
32
42
|
rescue
|
33
|
-
@logger.error
|
43
|
+
@logger.error("Could not connect to beanstalk.")
|
44
|
+
reconnect
|
45
|
+
end
|
46
|
+
|
47
|
+
def reconnect
|
48
|
+
@logger.error("Sleeping 30 seconds")
|
49
|
+
sleep(30)
|
50
|
+
@logger.error("Attempting to reconnect")
|
51
|
+
start
|
34
52
|
end
|
35
53
|
|
36
54
|
def start(received = -1)
|
37
55
|
while (received == -1) || (@stats['received'] < received)
|
38
56
|
begin
|
39
|
-
job =
|
57
|
+
job = beanstalk.reserve
|
40
58
|
|
41
59
|
@logger.debug("job #{job.inspect}")
|
42
60
|
@logger.debug("job #{job.body.inspect}")
|
@@ -44,6 +62,9 @@ class BeanStalk::Worker
|
|
44
62
|
@stats['received'] += 1
|
45
63
|
|
46
64
|
job.delete if work(job)
|
65
|
+
rescue Beanstalk::NotConnected => e
|
66
|
+
@logger.error("Beanstalk disconnected")
|
67
|
+
reconnect
|
47
68
|
rescue Exception => e
|
48
69
|
@logger.error("Caught exception #{e.to_s}")
|
49
70
|
exit
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beanstalk-worker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Artem Veremey
|
@@ -9,25 +10,28 @@ authors:
|
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2013-08-
|
13
|
+
date: 2013-08-28 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: beanstalk-client
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
17
19
|
requirements:
|
18
|
-
- - '>='
|
20
|
+
- - ! '>='
|
19
21
|
- !ruby/object:Gem::Version
|
20
22
|
version: '0'
|
21
23
|
type: :runtime
|
22
24
|
prerelease: false
|
23
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
24
27
|
requirements:
|
25
|
-
- - '>='
|
28
|
+
- - ! '>='
|
26
29
|
- !ruby/object:Gem::Version
|
27
30
|
version: '0'
|
28
31
|
- !ruby/object:Gem::Dependency
|
29
32
|
name: mixlib-log
|
30
33
|
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
31
35
|
requirements:
|
32
36
|
- - ~>
|
33
37
|
- !ruby/object:Gem::Version
|
@@ -35,6 +39,7 @@ dependencies:
|
|
35
39
|
type: :runtime
|
36
40
|
prerelease: false
|
37
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
38
43
|
requirements:
|
39
44
|
- - ~>
|
40
45
|
- !ruby/object:Gem::Version
|
@@ -42,6 +47,7 @@ dependencies:
|
|
42
47
|
- !ruby/object:Gem::Dependency
|
43
48
|
name: mixlib-config
|
44
49
|
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
45
51
|
requirements:
|
46
52
|
- - ~>
|
47
53
|
- !ruby/object:Gem::Version
|
@@ -49,6 +55,7 @@ dependencies:
|
|
49
55
|
type: :runtime
|
50
56
|
prerelease: false
|
51
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
52
59
|
requirements:
|
53
60
|
- - ~>
|
54
61
|
- !ruby/object:Gem::Version
|
@@ -56,6 +63,7 @@ dependencies:
|
|
56
63
|
- !ruby/object:Gem::Dependency
|
57
64
|
name: mixlib-log-json
|
58
65
|
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
59
67
|
requirements:
|
60
68
|
- - ~>
|
61
69
|
- !ruby/object:Gem::Version
|
@@ -63,6 +71,7 @@ dependencies:
|
|
63
71
|
type: :runtime
|
64
72
|
prerelease: false
|
65
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
66
75
|
requirements:
|
67
76
|
- - ~>
|
68
77
|
- !ruby/object:Gem::Version
|
@@ -70,6 +79,7 @@ dependencies:
|
|
70
79
|
- !ruby/object:Gem::Dependency
|
71
80
|
name: yajl-ruby
|
72
81
|
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
73
83
|
requirements:
|
74
84
|
- - ~>
|
75
85
|
- !ruby/object:Gem::Version
|
@@ -77,6 +87,7 @@ dependencies:
|
|
77
87
|
type: :runtime
|
78
88
|
prerelease: false
|
79
89
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
80
91
|
requirements:
|
81
92
|
- - ~>
|
82
93
|
- !ruby/object:Gem::Version
|
@@ -84,6 +95,7 @@ dependencies:
|
|
84
95
|
- !ruby/object:Gem::Dependency
|
85
96
|
name: activesupport
|
86
97
|
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
87
99
|
requirements:
|
88
100
|
- - ~>
|
89
101
|
- !ruby/object:Gem::Version
|
@@ -91,6 +103,7 @@ dependencies:
|
|
91
103
|
type: :runtime
|
92
104
|
prerelease: false
|
93
105
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
94
107
|
requirements:
|
95
108
|
- - ~>
|
96
109
|
- !ruby/object:Gem::Version
|
@@ -98,62 +111,71 @@ dependencies:
|
|
98
111
|
- !ruby/object:Gem::Dependency
|
99
112
|
name: rspec
|
100
113
|
requirement: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
101
115
|
requirements:
|
102
|
-
- - '>='
|
116
|
+
- - ! '>='
|
103
117
|
- !ruby/object:Gem::Version
|
104
118
|
version: 2.13.0
|
105
119
|
type: :development
|
106
120
|
prerelease: false
|
107
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
108
123
|
requirements:
|
109
|
-
- - '>='
|
124
|
+
- - ! '>='
|
110
125
|
- !ruby/object:Gem::Version
|
111
126
|
version: 2.13.0
|
112
127
|
- !ruby/object:Gem::Dependency
|
113
128
|
name: yard
|
114
129
|
requirement: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
115
131
|
requirements:
|
116
|
-
- - '>'
|
132
|
+
- - ! '>'
|
117
133
|
- !ruby/object:Gem::Version
|
118
134
|
version: '0.8'
|
119
135
|
type: :development
|
120
136
|
prerelease: false
|
121
137
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
122
139
|
requirements:
|
123
|
-
- - '>'
|
140
|
+
- - ! '>'
|
124
141
|
- !ruby/object:Gem::Version
|
125
142
|
version: '0.8'
|
126
143
|
- !ruby/object:Gem::Dependency
|
127
144
|
name: rdoc
|
128
145
|
requirement: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
129
147
|
requirements:
|
130
|
-
- - '>'
|
148
|
+
- - ! '>'
|
131
149
|
- !ruby/object:Gem::Version
|
132
150
|
version: '4.0'
|
133
151
|
type: :development
|
134
152
|
prerelease: false
|
135
153
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
136
155
|
requirements:
|
137
|
-
- - '>'
|
156
|
+
- - ! '>'
|
138
157
|
- !ruby/object:Gem::Version
|
139
158
|
version: '4.0'
|
140
159
|
- !ruby/object:Gem::Dependency
|
141
160
|
name: cucumber
|
142
161
|
requirement: !ruby/object:Gem::Requirement
|
162
|
+
none: false
|
143
163
|
requirements:
|
144
|
-
- - '>='
|
164
|
+
- - ! '>='
|
145
165
|
- !ruby/object:Gem::Version
|
146
166
|
version: '0'
|
147
167
|
type: :development
|
148
168
|
prerelease: false
|
149
169
|
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
150
171
|
requirements:
|
151
|
-
- - '>='
|
172
|
+
- - ! '>='
|
152
173
|
- !ruby/object:Gem::Version
|
153
174
|
version: '0'
|
154
175
|
- !ruby/object:Gem::Dependency
|
155
176
|
name: bundler
|
156
177
|
requirement: !ruby/object:Gem::Requirement
|
178
|
+
none: false
|
157
179
|
requirements:
|
158
180
|
- - ~>
|
159
181
|
- !ruby/object:Gem::Version
|
@@ -161,6 +183,7 @@ dependencies:
|
|
161
183
|
type: :development
|
162
184
|
prerelease: false
|
163
185
|
version_requirements: !ruby/object:Gem::Requirement
|
186
|
+
none: false
|
164
187
|
requirements:
|
165
188
|
- - ~>
|
166
189
|
- !ruby/object:Gem::Version
|
@@ -168,6 +191,7 @@ dependencies:
|
|
168
191
|
- !ruby/object:Gem::Dependency
|
169
192
|
name: jeweler
|
170
193
|
requirement: !ruby/object:Gem::Requirement
|
194
|
+
none: false
|
171
195
|
requirements:
|
172
196
|
- - ~>
|
173
197
|
- !ruby/object:Gem::Version
|
@@ -175,6 +199,7 @@ dependencies:
|
|
175
199
|
type: :development
|
176
200
|
prerelease: false
|
177
201
|
version_requirements: !ruby/object:Gem::Requirement
|
202
|
+
none: false
|
178
203
|
requirements:
|
179
204
|
- - ~>
|
180
205
|
- !ruby/object:Gem::Version
|
@@ -182,29 +207,33 @@ dependencies:
|
|
182
207
|
- !ruby/object:Gem::Dependency
|
183
208
|
name: beanstalk-client-rspec
|
184
209
|
requirement: !ruby/object:Gem::Requirement
|
210
|
+
none: false
|
185
211
|
requirements:
|
186
|
-
- - '>='
|
212
|
+
- - ! '>='
|
187
213
|
- !ruby/object:Gem::Version
|
188
214
|
version: '0'
|
189
215
|
type: :development
|
190
216
|
prerelease: false
|
191
217
|
version_requirements: !ruby/object:Gem::Requirement
|
218
|
+
none: false
|
192
219
|
requirements:
|
193
|
-
- - '>='
|
220
|
+
- - ! '>='
|
194
221
|
- !ruby/object:Gem::Version
|
195
222
|
version: '0'
|
196
223
|
- !ruby/object:Gem::Dependency
|
197
224
|
name: simplecov
|
198
225
|
requirement: !ruby/object:Gem::Requirement
|
226
|
+
none: false
|
199
227
|
requirements:
|
200
|
-
- - '>='
|
228
|
+
- - ! '>='
|
201
229
|
- !ruby/object:Gem::Version
|
202
230
|
version: '0'
|
203
231
|
type: :development
|
204
232
|
prerelease: false
|
205
233
|
version_requirements: !ruby/object:Gem::Requirement
|
234
|
+
none: false
|
206
235
|
requirements:
|
207
|
-
- - '>='
|
236
|
+
- - ! '>='
|
208
237
|
- !ruby/object:Gem::Version
|
209
238
|
version: '0'
|
210
239
|
description: Beanstalkd Worker base class
|
@@ -236,26 +265,29 @@ files:
|
|
236
265
|
homepage: http://github.com/aia/beanstalk-worker
|
237
266
|
licenses:
|
238
267
|
- MIT
|
239
|
-
metadata: {}
|
240
268
|
post_install_message:
|
241
269
|
rdoc_options: []
|
242
270
|
require_paths:
|
243
271
|
- lib
|
244
272
|
required_ruby_version: !ruby/object:Gem::Requirement
|
273
|
+
none: false
|
245
274
|
requirements:
|
246
|
-
- - '>='
|
275
|
+
- - ! '>='
|
247
276
|
- !ruby/object:Gem::Version
|
248
277
|
version: '0'
|
278
|
+
segments:
|
279
|
+
- 0
|
280
|
+
hash: 3343727007483199408
|
249
281
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
282
|
+
none: false
|
250
283
|
requirements:
|
251
|
-
- - '>='
|
284
|
+
- - ! '>='
|
252
285
|
- !ruby/object:Gem::Version
|
253
286
|
version: '0'
|
254
287
|
requirements: []
|
255
288
|
rubyforge_project:
|
256
|
-
rubygems_version:
|
289
|
+
rubygems_version: 1.8.25
|
257
290
|
signing_key:
|
258
|
-
specification_version:
|
291
|
+
specification_version: 3
|
259
292
|
summary: Beanstalkd Worker base class
|
260
293
|
test_files: []
|
261
|
-
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 77e7b0abdfdd60835bddcef4024d49042b838c2a
|
4
|
-
data.tar.gz: 2a9ab5b5251df3270d6868f7f760bd63ee1f09e6
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 18a60f6d317de7c164522f2864a6ed1b76d751da38558c68e53bbbe00ea7c262981b71d2a789384d9f336ee0734bfe684bc02b1b77e056dc70f5b6b3db3d7c31
|
7
|
-
data.tar.gz: 4d603dba338fe466c7b5becd6215d0a95d25204e831c9b1718d74672356ae104bb2ba06d43259469968e917371932b7ceaf91e02b4686f78ba51e4dfbbf7ef80
|