rabbit_carrots 1.0.4 → 1.0.6
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/rabbit_carrots/configuration.rb +4 -0
- data/lib/rabbit_carrots/core.rb +14 -0
- data/lib/rabbit_carrots/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dddc79195a7219d4b6a15e17ccce40b5dd6df25e662c037724470f51c3405f0b
|
|
4
|
+
data.tar.gz: ebc84383cd31e5b8e973a4d99f7e284eea28cdeb79fa638c63680be5a3705c41
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9f63f5fa53c0070512cfbe8881f39f7012c85e8c5e6b1f64bb1775f9c8662d8adc361e2426108614bb3e7cb48db75f531fe5675784910b55f7c6bb3478333652
|
|
7
|
+
data.tar.gz: 8c3d5d723a1e985eacb93dc58803cfc2e5054cd54cb6b2cd36d48da2c3c1c2b395e3060ab572dc3bd20dc7e5097c3d45356059ee6c7fd607792e836501572ac5
|
data/lib/rabbit_carrots/core.rb
CHANGED
|
@@ -92,19 +92,24 @@ module RabbitCarrots
|
|
|
92
92
|
handler_class.handle!(channel, delivery_info, properties, payload)
|
|
93
93
|
channel.ack(delivery_info.delivery_tag, false)
|
|
94
94
|
rescue RabbitCarrots::EventHandlers::Errors::NackMessage, JSON::ParserError => _e
|
|
95
|
+
payload = encode_payload(payload)
|
|
95
96
|
logger.warn "Nacked message: #{payload}"
|
|
96
97
|
channel.nack(delivery_info.delivery_tag, false, false)
|
|
97
98
|
rescue RabbitCarrots::EventHandlers::Errors::NackAndRequeueMessage => _e
|
|
99
|
+
payload = encode_payload(payload)
|
|
98
100
|
logger.warn "Nacked and Requeued message: #{payload}"
|
|
99
101
|
channel.nack(delivery_info.delivery_tag, false, true)
|
|
100
102
|
rescue self.class.database_agnostic_not_null_violation, self.class.database_agnostic_record_invalid => e
|
|
103
|
+
payload = encode_payload(payload)
|
|
101
104
|
logger.warn "Null constraint or Invalid violation: #{payload}. Error: #{e.message}"
|
|
102
105
|
channel.ack(delivery_info.delivery_tag, false)
|
|
103
106
|
rescue self.class.database_agnostic_connection_not_established => e
|
|
107
|
+
payload = encode_payload(payload)
|
|
104
108
|
logger.warn "Error connection not established to the database: #{payload}. Error: #{e.message}"
|
|
105
109
|
sleep 3
|
|
106
110
|
channel.nack(delivery_info.delivery_tag, false, true)
|
|
107
111
|
rescue StandardError => e
|
|
112
|
+
payload = encode_payload(payload)
|
|
108
113
|
logger.error "Error handling message: #{payload}. Error: #{e.message}"
|
|
109
114
|
sleep 3
|
|
110
115
|
channel.nack(delivery_info.delivery_tag, false, true)
|
|
@@ -137,5 +142,14 @@ module RabbitCarrots
|
|
|
137
142
|
adapter.instance_variable_set(:@logger, logger)
|
|
138
143
|
adapter
|
|
139
144
|
end
|
|
145
|
+
|
|
146
|
+
def encode_payload(payload)
|
|
147
|
+
payload.encode(
|
|
148
|
+
'UTF-8',
|
|
149
|
+
invalid: :replace,
|
|
150
|
+
undef: :replace,
|
|
151
|
+
replace: ''
|
|
152
|
+
)
|
|
153
|
+
end
|
|
140
154
|
end
|
|
141
155
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rabbit_carrots
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Brusk Awat
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-12-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bunny
|