eventq_aws 1.4.0 → 1.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/eventq_aws/aws_queue_worker.rb +49 -37
- data/lib/eventq_aws/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 960bc855dcdbb80c29b612240a61e8d33507a3d7
|
4
|
+
data.tar.gz: bcca57f08e3a82674474b998c0f0afa3d4efc96d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4306b1e8c531dc08e06471c7cd4bc88a01d37647a2649f33fe42933742838bccdd50120368c1cfd2b362ae06f5c1525f830c74c2dd0fc8bcf7f8e2ddaf763a2e
|
7
|
+
data.tar.gz: e38f600b473eb503a4557a169ebc87c914404aa38f11b6f410bf0e94449d15d00bec2c9fd848c0f0793bbaf93a7b1ddab202ef3863ca2bd9a286304973e58a6a
|
@@ -102,7 +102,6 @@ module EventQ
|
|
102
102
|
|
103
103
|
received = false
|
104
104
|
error = false
|
105
|
-
abort = false
|
106
105
|
|
107
106
|
begin
|
108
107
|
|
@@ -116,44 +115,14 @@ module EventQ
|
|
116
115
|
|
117
116
|
#check that a message was received
|
118
117
|
if response.messages.length > 0
|
119
|
-
tag_processing_thread
|
120
|
-
|
121
|
-
msg = response.messages[0]
|
122
|
-
retry_attempts = msg.attributes[APPROXIMATE_RECEIVE_COUNT].to_i - 1
|
123
|
-
|
124
|
-
#deserialize the message payload
|
125
|
-
payload = JSON.load(msg.body)
|
126
|
-
message = deserialize_message(payload[MESSAGE])
|
127
|
-
|
128
|
-
message_args = EventQ::MessageArgs.new(message.type, retry_attempts)
|
129
|
-
|
130
|
-
EventQ.log(:debug, "[#{self.class}] - Message received. Retry Attempts: #{retry_attempts}")
|
131
|
-
|
132
|
-
#begin worker block for queue message
|
133
118
|
begin
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
abort = true
|
139
|
-
EventQ.log(:info, "[#{self.class}] - Message aborted.")
|
140
|
-
else
|
141
|
-
#accept the message as processed
|
142
|
-
client.sqs.delete_message({ queue_url: q, receipt_handle: msg.receipt_handle })
|
143
|
-
EventQ.log(:info, "[#{self.class}] - Message acknowledged.")
|
144
|
-
received = true
|
119
|
+
tag_processing_thread
|
120
|
+
process_message(response, client, queue, q, block) do |received, error|
|
121
|
+
received = received
|
122
|
+
error = error
|
145
123
|
end
|
146
|
-
|
147
|
-
|
148
|
-
EventQ.log(:error, "[#{self.class}] - An unhandled error happened while attempting to process a queue message. Error: #{e} | Backtrace: #{e.backtrace}")
|
149
|
-
|
150
|
-
error = true
|
151
|
-
|
152
|
-
end
|
153
|
-
|
154
|
-
if abort || error
|
155
|
-
EventQ.log(:info, "[#{self.class}] - Message rejected.")
|
156
|
-
reject_message(queue, client, msg, q, retry_attempts)
|
124
|
+
ensure
|
125
|
+
untag_processing_thread
|
157
126
|
end
|
158
127
|
|
159
128
|
end
|
@@ -194,6 +163,49 @@ module EventQ
|
|
194
163
|
|
195
164
|
private
|
196
165
|
|
166
|
+
def process_message(response, client, queue, q, block)
|
167
|
+
abort = false
|
168
|
+
msg = response.messages[0]
|
169
|
+
retry_attempts = msg.attributes[APPROXIMATE_RECEIVE_COUNT].to_i - 1
|
170
|
+
|
171
|
+
#deserialize the message payload
|
172
|
+
payload = JSON.load(msg.body)
|
173
|
+
message = deserialize_message(payload[MESSAGE])
|
174
|
+
|
175
|
+
message_args = EventQ::MessageArgs.new(message.type, retry_attempts)
|
176
|
+
|
177
|
+
EventQ.log(:debug, "[#{self.class}] - Message received. Retry Attempts: #{retry_attempts}")
|
178
|
+
|
179
|
+
#begin worker block for queue message
|
180
|
+
begin
|
181
|
+
|
182
|
+
block.call(message.content, message_args)
|
183
|
+
|
184
|
+
if message_args.abort == true
|
185
|
+
abort = true
|
186
|
+
EventQ.log(:info, "[#{self.class}] - Message aborted.")
|
187
|
+
else
|
188
|
+
#accept the message as processed
|
189
|
+
client.sqs.delete_message({ queue_url: q, receipt_handle: msg.receipt_handle })
|
190
|
+
EventQ.log(:info, "[#{self.class}] - Message acknowledged.")
|
191
|
+
received = true
|
192
|
+
end
|
193
|
+
|
194
|
+
rescue => e
|
195
|
+
EventQ.log(:error, "[#{self.class}] - An unhandled error happened while attempting to process a queue message. Error: #{e} | Backtrace: #{e.backtrace}")
|
196
|
+
|
197
|
+
error = true
|
198
|
+
|
199
|
+
end
|
200
|
+
|
201
|
+
if abort || error
|
202
|
+
EventQ.log(:info, "[#{self.class}] - Message rejected.")
|
203
|
+
reject_message(queue, client, msg, q, retry_attempts)
|
204
|
+
end
|
205
|
+
|
206
|
+
yield [received, error]
|
207
|
+
end
|
208
|
+
|
197
209
|
def reject_message(queue, client, msg, q, retry_attempts)
|
198
210
|
|
199
211
|
if !queue.allow_retry || retry_attempts >= queue.max_retry_attempts
|
data/lib/eventq_aws/version.rb
CHANGED