asir_beanstalk 1.1.5 → 1.2.0
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/Changelog +5 -0
- data/asir_beanstalk.gemspec +1 -1
- data/example/example_helper.rb +5 -1
- data/lib/asir/transport/beanstalk.rb +16 -18
- data/lib/asir_beanstalk/version.rb +1 -1
- metadata +4 -10
data/Changelog
CHANGED
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.
|
21
|
+
gem.add_dependency "asir", "~> 1.2.0"
|
22
22
|
|
23
23
|
gem.add_development_dependency 'rake', '>= 0.9.0'
|
24
24
|
gem.add_development_dependency 'rspec', '~> 2.12.0'
|
data/example/example_helper.rb
CHANGED
@@ -34,14 +34,15 @@ module ASIR
|
|
34
34
|
|
35
35
|
# !SLIDE
|
36
36
|
# Sends the encoded Message payload String.
|
37
|
-
def _send_message
|
37
|
+
def _send_message state
|
38
38
|
stream.with_stream! do | s |
|
39
|
+
message = state.message
|
39
40
|
begin
|
40
41
|
match =
|
41
42
|
_beanstalk(s,
|
42
|
-
"put #{message[:beanstalk_priority] || @priority} #{message[:beanstalk_delay] || @delay} #{message[:beanstalk_ttr] || @ttr} #{message_payload.size}\r\n",
|
43
|
+
"put #{message[:beanstalk_priority] || @priority} #{message[:beanstalk_delay] || @delay} #{message[:beanstalk_ttr] || @ttr} #{state.message_payload.size}\r\n",
|
43
44
|
/\AINSERTED (\d+)\r\n\Z/,
|
44
|
-
message_payload)
|
45
|
+
state.message_payload)
|
45
46
|
job_id = message[:beanstalk_job_id] = match[1].to_i
|
46
47
|
_log { "beanstalk_job_id = #{job_id.inspect}" } if @verbose >= 2
|
47
48
|
rescue ::Exception => exc
|
@@ -56,8 +57,9 @@ module ASIR
|
|
56
57
|
|
57
58
|
# !SLIDE
|
58
59
|
# Receives the encoded Message payload String.
|
59
|
-
def _receive_message
|
60
|
-
|
60
|
+
def _receive_message state
|
61
|
+
additional_data = state.additional_data ||= { }
|
62
|
+
state.in_stream.with_stream! do | stream |
|
61
63
|
begin
|
62
64
|
match =
|
63
65
|
_beanstalk(stream,
|
@@ -66,10 +68,9 @@ module ASIR
|
|
66
68
|
additional_data[:beanstalk_job_id] = match[1].to_i
|
67
69
|
additional_data[:beanstalk_message_size] =
|
68
70
|
size = match[2].to_i
|
69
|
-
message_payload = stream.read(size)
|
71
|
+
state.message_payload = stream.read(size)
|
70
72
|
_read_line_and_expect! stream, /\A\r\n\Z/
|
71
|
-
|
72
|
-
[ message_payload, stream ]
|
73
|
+
state.result_opaque = stream
|
73
74
|
rescue ::Exception => exc
|
74
75
|
_log { [ :_receive_message, :exception, exc ] }
|
75
76
|
additional_data[:beanstalk_error] = exc
|
@@ -81,7 +82,7 @@ module ASIR
|
|
81
82
|
|
82
83
|
# !SLIDE
|
83
84
|
# Sends the encoded Result payload String.
|
84
|
-
def _send_result
|
85
|
+
def _send_result state
|
85
86
|
#
|
86
87
|
# There is a possibility here the following could happen:
|
87
88
|
#
|
@@ -101,19 +102,16 @@ module ASIR
|
|
101
102
|
# ...
|
102
103
|
#
|
103
104
|
# Therefore: _receiver_message passes the original message stream to us.
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
"delete #{job_id}\r\n",
|
110
|
-
/\ADELETED\r\n\Z/)
|
111
|
-
end
|
105
|
+
stream = state.result_opaque
|
106
|
+
job_id = state.message[:beanstalk_job_id] or raise "no beanstalk_job_id"
|
107
|
+
_beanstalk(stream,
|
108
|
+
"delete #{job_id}\r\n",
|
109
|
+
/\ADELETED\r\n\Z/)
|
112
110
|
end
|
113
111
|
|
114
112
|
# !SLIDE
|
115
113
|
# Receives the encoded Result payload String.
|
116
|
-
def _receive_result
|
114
|
+
def _receive_result state
|
117
115
|
nil
|
118
116
|
end
|
119
117
|
|
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.
|
4
|
+
version: 1.2.0
|
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: 2012-12-
|
12
|
+
date: 2012-12-29 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.
|
21
|
+
version: 1.2.0
|
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.
|
29
|
+
version: 1.2.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: rake
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -117,18 +117,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
117
117
|
- - ! '>='
|
118
118
|
- !ruby/object:Gem::Version
|
119
119
|
version: '0'
|
120
|
-
segments:
|
121
|
-
- 0
|
122
|
-
hash: 1666542740013907559
|
123
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
121
|
none: false
|
125
122
|
requirements:
|
126
123
|
- - ! '>='
|
127
124
|
- !ruby/object:Gem::Version
|
128
125
|
version: '0'
|
129
|
-
segments:
|
130
|
-
- 0
|
131
|
-
hash: 1666542740013907559
|
132
126
|
requirements: []
|
133
127
|
rubyforge_project:
|
134
128
|
rubygems_version: 1.8.24
|