eventq_aws 1.4.0 → 1.4.1
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.
- 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