em-jack 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/em-jack.rb +1 -1
- data/lib/em-jack/connection.rb +17 -17
- data/lib/em-jack/handlers/buried.rb +1 -1
- data/lib/em-jack/handlers/deleted.rb +1 -1
- data/lib/em-jack/handlers/errors.rb +1 -1
- data/lib/em-jack/handlers/inserted.rb +2 -2
- data/lib/em-jack/handlers/not_ignored.rb +2 -2
- data/lib/em-jack/handlers/ok.rb +1 -1
- data/lib/em-jack/handlers/released.rb +2 -2
- data/lib/em-jack/handlers/reserved.rb +2 -2
- data/lib/em-jack/handlers/using.rb +1 -1
- data/lib/em-jack/handlers/watching.rb +1 -1
- metadata +2 -2
data/lib/em-jack.rb
CHANGED
data/lib/em-jack/connection.rb
CHANGED
@@ -17,37 +17,37 @@ module EMJack
|
|
17
17
|
def self.handlers
|
18
18
|
@@handlers
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
def initialize(opts = {})
|
22
22
|
@host = opts[:host] || 'localhost'
|
23
23
|
@port = opts[:port] || 11300
|
24
24
|
@tube = opts[:tube]
|
25
|
-
|
25
|
+
|
26
26
|
@used_tube = 'default'
|
27
27
|
@watched_tubes = ['default']
|
28
|
-
|
28
|
+
|
29
29
|
@data = ""
|
30
30
|
@retries = 0
|
31
31
|
@in_reserve = false
|
32
32
|
@deferrables = []
|
33
|
-
|
33
|
+
|
34
34
|
@conn = EM::connect(host, port, EMJack::BeanstalkConnection) do |conn|
|
35
35
|
conn.client = self
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
unless @tube.nil?
|
39
39
|
use(@tube)
|
40
40
|
watch(@tube)
|
41
41
|
end
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
def use(tube, &blk)
|
45
45
|
return if @used_tube == tube
|
46
46
|
@used_tube = tube
|
47
47
|
@conn.send(:use, tube)
|
48
48
|
add_deferrable(&blk)
|
49
49
|
end
|
50
|
-
|
50
|
+
|
51
51
|
def watch(tube, &blk)
|
52
52
|
return if @watched_tubes.include?(tube)
|
53
53
|
@conn.send(:watch, tube)
|
@@ -55,7 +55,7 @@ module EMJack
|
|
55
55
|
df.callback { @watched_tubes.push(tube) }
|
56
56
|
df
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
def ignore(tube, &blk)
|
60
60
|
return unless @watched_tubes.include?(tube)
|
61
61
|
@conn.send(:ignore, tube)
|
@@ -114,15 +114,15 @@ module EMJack
|
|
114
114
|
pri = (opts[:priority] || 65536).to_i
|
115
115
|
pri = 65536 if pri< 0
|
116
116
|
pri = 2 ** 32 if pri > (2 ** 32)
|
117
|
-
|
117
|
+
|
118
118
|
delay = (opts[:delay] || 0).to_i
|
119
119
|
delay = 0 if delay < 0
|
120
|
-
|
120
|
+
|
121
121
|
ttr = (opts[:ttr] || 300).to_i
|
122
122
|
ttr = 300 if ttr < 0
|
123
|
-
|
123
|
+
|
124
124
|
m = msg.to_s
|
125
|
-
|
125
|
+
|
126
126
|
@conn.send_with_data(:put, m, pri, delay, ttr, m.length)
|
127
127
|
add_deferrable(&blk)
|
128
128
|
end
|
@@ -160,13 +160,13 @@ module EMJack
|
|
160
160
|
puts "ERROR: #{err}"
|
161
161
|
end
|
162
162
|
end
|
163
|
-
|
163
|
+
|
164
164
|
df.callback &blk if block_given?
|
165
165
|
|
166
166
|
@deferrables.push(df)
|
167
167
|
df
|
168
168
|
end
|
169
|
-
|
169
|
+
|
170
170
|
def on_error(&blk)
|
171
171
|
@error_callback = blk
|
172
172
|
end
|
@@ -194,7 +194,7 @@ module EMJack
|
|
194
194
|
body, @data = extract_body(bytes, @data) unless bytes <= 0
|
195
195
|
break if body.nil? && bytes > 0
|
196
196
|
|
197
|
-
handled = h.handle(df, first, body)
|
197
|
+
handled = h.handle(df, first, body, self)
|
198
198
|
break if handled
|
199
199
|
end
|
200
200
|
|
@@ -203,7 +203,7 @@ module EMJack
|
|
203
203
|
# not handled means there wasn't enough data to process a complete response
|
204
204
|
break unless handled
|
205
205
|
next unless @data.index(/\r\n/)
|
206
|
-
|
206
|
+
|
207
207
|
@data = @data[(@data.index(/\r\n/) + 2)..-1]
|
208
208
|
@data = "" if @data.nil?
|
209
209
|
end
|
@@ -219,5 +219,5 @@ module EMJack
|
|
219
219
|
|
220
220
|
[body, data]
|
221
221
|
end
|
222
|
-
end
|
222
|
+
end
|
223
223
|
end
|
@@ -7,13 +7,13 @@ module EMJack
|
|
7
7
|
response =~ RESPONSE
|
8
8
|
end
|
9
9
|
|
10
|
-
def self.handle(deferrable, response, body)
|
10
|
+
def self.handle(deferrable, response, body, conn=nil)
|
11
11
|
return false unless response =~ RESPONSE
|
12
12
|
|
13
13
|
deferrable.succeed($1.to_i)
|
14
14
|
true
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
EMJack::Connection.register_handler(EMJack::Handler::Inserted)
|
18
18
|
end
|
19
19
|
end
|
@@ -6,8 +6,8 @@ module EMJack
|
|
6
6
|
def self.handles?(response)
|
7
7
|
response =~ RESPONSE
|
8
8
|
end
|
9
|
-
|
10
|
-
def self.handle(deferrable, response, body)
|
9
|
+
|
10
|
+
def self.handle(deferrable, response, body, conn=nil)
|
11
11
|
return false unless response =~ RESPONSE
|
12
12
|
|
13
13
|
deferrable.fail("Can't ignore only watched tube")
|
data/lib/em-jack/handlers/ok.rb
CHANGED
@@ -7,13 +7,13 @@ module EMJack
|
|
7
7
|
response =~ RESPONSE
|
8
8
|
end
|
9
9
|
|
10
|
-
def self.handle(deferrable, response, body)
|
10
|
+
def self.handle(deferrable, response, body, conn=nil)
|
11
11
|
return false unless response =~ RESPONSE
|
12
12
|
|
13
13
|
deferrable.succeed
|
14
14
|
true
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
EMJack::Connection.register_handler(EMJack::Handler::Released)
|
18
18
|
end
|
19
19
|
end
|
@@ -11,12 +11,12 @@ module EMJack
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
def self.handle(deferrable, response, body)
|
14
|
+
def self.handle(deferrable, response, body, conn)
|
15
15
|
return false unless response =~ RESPONSE
|
16
16
|
id = $1.to_i
|
17
17
|
bytes = $2.to_i
|
18
18
|
|
19
|
-
job = EMJack::Job.new(
|
19
|
+
job = EMJack::Job.new(conn, id, body)
|
20
20
|
deferrable.succeed(job)
|
21
21
|
|
22
22
|
true
|