em-jack 0.0.6 → 0.0.7
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/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
|