mimi-messaging-sqs_sns 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/mimi/messaging/sqs_sns/consumer.rb +16 -8
- data/lib/mimi/messaging/sqs_sns/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e106fbe54e012ffd59a6126292242b23c28b3086ff5dfd4866acb64bad559ccf
|
4
|
+
data.tar.gz: 2fce6feb750d6cf27925e79646b8e76359188343f663ee8d20f30f09eedc2ba0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a830a70afd7b0a5f268d600ca9673a8f3fc36566201510263008f517d32354a020213de0b51497c446e99a768089f2fd9a1392dccdf5bbbc5fc352d3557a2a4e
|
7
|
+
data.tar.gz: 41dc62d85b21f8736011d974b2749e5f6ce093d3f3cc3746f037f8a986ef01621bc2a61ae60f8f96a5405dcc6672bd1468fec0e3ea695e0b1f1e4a123d71c962
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
## UNRELEASED
|
4
4
|
|
5
|
+
## v0.8.2
|
6
|
+
|
7
|
+
* [#7](https://github.com/kukushkin/mimi-messaging-sqs_sns/pull/7)
|
8
|
+
* Fixed an issue in the error processing, which could potentially crash the consumer threads
|
9
|
+
|
5
10
|
## v0.8.1
|
6
11
|
|
7
12
|
* [#5](https://github.com/kukushkin/mimi-messaging-sqs_sns/pull/5)
|
@@ -48,14 +48,16 @@ module Mimi
|
|
48
48
|
return unless message
|
49
49
|
|
50
50
|
Mimi::Messaging.log "Read message from: #{queue_url}"
|
51
|
-
|
52
|
-
|
51
|
+
begin
|
52
|
+
adapter.worker_pool.post do
|
53
|
+
process_message(adapter, queue_url, message, block)
|
54
|
+
end
|
55
|
+
rescue Concurrent::RejectedExecutionError
|
56
|
+
# the backlog is overflown, put the message back
|
57
|
+
Mimi::Messaging.log "Worker pool backlog is full, nack-ing the message " \
|
58
|
+
"(workers:#{adapter.worker_pool.length}, backlog:#{adapter.worker_pool.queue_length})"
|
59
|
+
nack_message(adapter, queue_url, message)
|
53
60
|
end
|
54
|
-
rescue Concurrent::RejectedExecutionError
|
55
|
-
# the backlog is overflown, put the message back
|
56
|
-
Mimi::Messaging.log "Worker pool backlog is full, nack-ing the message " \
|
57
|
-
"(workers:#{adapter.worker_pool.length}, backlog:#{adapter.worker_pool.queue_length})"
|
58
|
-
nack_message(adapter, queue_url, message)
|
59
61
|
rescue StandardError => e
|
60
62
|
Mimi::Messaging.logger&.error(
|
61
63
|
"#{self.class}: failed to read or process message from: #{queue_url}," \
|
@@ -87,7 +89,7 @@ module Mimi
|
|
87
89
|
"#{self.class}: failed to process message from: #{queue_url}," \
|
88
90
|
" error: (#{e.class}) #{e}"
|
89
91
|
)
|
90
|
-
# NOTE: message is neither ACKed or NACKed
|
92
|
+
# NOTE: error is recovered and the message is neither ACKed or NACKed
|
91
93
|
end
|
92
94
|
|
93
95
|
# ACK-ing the message indicates successfull processing of it
|
@@ -108,6 +110,12 @@ module Mimi
|
|
108
110
|
receipt_handle: msg.receipt_handle,
|
109
111
|
visibility_timeout: NACK_VISIBILITY_TIMEOUT
|
110
112
|
)
|
113
|
+
rescue StandardError => e
|
114
|
+
Mimi::Messaging.logger&.error(
|
115
|
+
"#{self.class}: failed to NACK message from: #{queue_url}," \
|
116
|
+
" error: (#{e.class}) #{e}"
|
117
|
+
)
|
118
|
+
# NOTE: error is recovered and the message is neither ACKed or NACKed
|
111
119
|
end
|
112
120
|
end # class Consumer
|
113
121
|
end # module SQS_SNS
|