mimi-messaging-sqs_sns 0.8.1 → 0.8.2
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/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
|