asir_beanstalk 1.2.0 → 1.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Changelog +11 -0
- data/asir_beanstalk.gemspec +1 -1
- data/example/ex03.rb +1 -1
- data/lib/asir/transport/beanstalk.rb +15 -13
- data/lib/asir_beanstalk/version.rb +1 -1
- metadata +4 -4
data/Changelog
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
2013-01-16 Kurt A. Stephens <ks.github@kurtstephens.com>
|
2
|
+
|
3
|
+
* v1.2.3: New version: bug fixes.
|
4
|
+
* one_way: by default.
|
5
|
+
* reserve: Fix Channel close on reserve error.
|
6
|
+
* flush: stream.flush can cause protocol errors.
|
7
|
+
* delete: Handle job deletion in #_after_invoke_message since #one_way.
|
8
|
+
* tube: Correctly handle /tube uri.
|
9
|
+
* beanstalkd: handle 1MB jobs.
|
10
|
+
* stop: Correctly handle #stop! during block IO during reserve.
|
11
|
+
|
1
12
|
2012-12-28 Kurt A. Stephens <ks.github@kurtstephens.com>
|
2
13
|
|
3
14
|
* v1.2.0: New version.
|
data/asir_beanstalk.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
19
19
|
gem.require_paths = ["lib"]
|
20
20
|
|
21
|
-
gem.add_dependency "asir", "~> 1.2.
|
21
|
+
gem.add_dependency "asir", "~> 1.2.3"
|
22
22
|
|
23
23
|
gem.add_development_dependency 'rake', '>= 0.9.0'
|
24
24
|
gem.add_development_dependency 'rspec', '~> 2.12.0'
|
data/example/ex03.rb
CHANGED
@@ -6,7 +6,7 @@ require 'asir/transport/beanstalk'
|
|
6
6
|
require 'asir/transport/buffer'
|
7
7
|
begin
|
8
8
|
t =
|
9
|
-
ASIR::Transport::Beanstalk.new(:
|
9
|
+
ASIR::Transport::Beanstalk.new(:uri => "beanstalk://127.0.0.1:30917/other")
|
10
10
|
t.encoder =
|
11
11
|
ASIR::Coder::Marshal.new
|
12
12
|
t.start_conduit!; sleep 1
|
@@ -9,6 +9,7 @@ module ASIR
|
|
9
9
|
attr_accessor :priority, :delay, :ttr
|
10
10
|
|
11
11
|
def initialize *args
|
12
|
+
@one_way = true
|
12
13
|
self.scheme_default ||= 'beanstalk'
|
13
14
|
self.host_default ||= '127.0.0.1'
|
14
15
|
self.port_default ||= 11300
|
@@ -61,10 +62,11 @@ module ASIR
|
|
61
62
|
additional_data = state.additional_data ||= { }
|
62
63
|
state.in_stream.with_stream! do | stream |
|
63
64
|
begin
|
64
|
-
match =
|
65
|
+
match = with_force_stop! do
|
65
66
|
_beanstalk(stream,
|
66
|
-
|
67
|
-
|
67
|
+
RESERVE,
|
68
|
+
/\ARESERVED (\d+) (\d+)\r\n\Z/)
|
69
|
+
end
|
68
70
|
additional_data[:beanstalk_job_id] = match[1].to_i
|
69
71
|
additional_data[:beanstalk_message_size] =
|
70
72
|
size = match[2].to_i
|
@@ -74,7 +76,7 @@ module ASIR
|
|
74
76
|
rescue ::Exception => exc
|
75
77
|
_log { [ :_receive_message, :exception, exc ] }
|
76
78
|
additional_data[:beanstalk_error] = exc
|
77
|
-
|
79
|
+
state.in_stream.close
|
78
80
|
raise exc
|
79
81
|
end
|
80
82
|
end
|
@@ -82,7 +84,7 @@ module ASIR
|
|
82
84
|
|
83
85
|
# !SLIDE
|
84
86
|
# Sends the encoded Result payload String.
|
85
|
-
def
|
87
|
+
def _after_invoke_message state
|
86
88
|
#
|
87
89
|
# There is a possibility here the following could happen:
|
88
90
|
#
|
@@ -107,6 +109,7 @@ module ASIR
|
|
107
109
|
_beanstalk(stream,
|
108
110
|
"delete #{job_id}\r\n",
|
109
111
|
/\ADELETED\r\n\Z/)
|
112
|
+
# state.in_stream.close # Force close.
|
110
113
|
end
|
111
114
|
|
112
115
|
# !SLIDE
|
@@ -136,8 +139,7 @@ module ASIR
|
|
136
139
|
stream.write payload
|
137
140
|
stream.write LINE_TERMINATOR
|
138
141
|
end
|
139
|
-
stream
|
140
|
-
if match = _read_line_and_expect!(stream, expect)
|
142
|
+
if match = _read_line_and_expect!(stream, expect) # , /\A(BAD_FORMAT|UNKNOWN_COMMAND)\r\n\Z/)
|
141
143
|
_log { [ :_beanstalk, :result, match[0] ] } if @verbose >= 3
|
142
144
|
end
|
143
145
|
match
|
@@ -146,10 +148,10 @@ module ASIR
|
|
146
148
|
LINE_TERMINATOR = "\r\n".freeze
|
147
149
|
|
148
150
|
def _after_connect! stream
|
149
|
-
if
|
151
|
+
if t = tube
|
150
152
|
_beanstalk(stream,
|
151
|
-
"use #{
|
152
|
-
/\AUSING #{
|
153
|
+
"use #{t}\r\n",
|
154
|
+
/\AUSING #{t}\r\n\Z/)
|
153
155
|
end
|
154
156
|
end
|
155
157
|
|
@@ -161,9 +163,9 @@ module ASIR
|
|
161
163
|
:try_sleep => 1,
|
162
164
|
:try_sleep_increment => 0.1,
|
163
165
|
:try_sleep_max => 10) do | stream |
|
164
|
-
if
|
166
|
+
if t = tube
|
165
167
|
_beanstalk(stream,
|
166
|
-
"watch #{
|
168
|
+
"watch #{t}\r\n",
|
167
169
|
/\AWATCHING (\d+)\r\n\Z/)
|
168
170
|
end
|
169
171
|
end
|
@@ -188,7 +190,7 @@ module ASIR
|
|
188
190
|
|
189
191
|
def _start_conduit!
|
190
192
|
opt = host ? "-l #{host} " : ""
|
191
|
-
cmd = "beanstalkd #{opt}-p #{port}"
|
193
|
+
cmd = "beanstalkd #{opt}-p #{port} -z #{1 * 1024 * 1024} #{@conduit_options[:beanstalkd_options]}"
|
192
194
|
$stderr.puts " #{cmd}" if @conduit_options[:verbose]
|
193
195
|
exec(cmd)
|
194
196
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asir_beanstalk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
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:
|
12
|
+
date: 2013-01-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: asir
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.2.
|
21
|
+
version: 1.2.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.2.
|
29
|
+
version: 1.2.3
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: rake
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|