rascal 13.1.1 → 13.1.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.
- package/CHANGELOG.md +3 -0
- package/lib/amqp/SubscriberError.js +5 -5
- package/lib/amqp/Subscription.js +1 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 13.1.2
|
|
4
|
+
- Fixed various issues when queue names contained period characters. Reported in https://github.com/guidesmiths/rascal/issues/166
|
|
5
|
+
|
|
3
6
|
## 13.1.1
|
|
4
7
|
- Moved setMaxListeners to createConnection task to suppress misleading 'Possible EventEmitter memory leak detected' warning. See https://github.com/guidesmiths/rascal/issues/164 for more details.
|
|
5
8
|
|
|
@@ -64,7 +64,7 @@ module.exports = function SubscriptionRecovery(broker, vhost) {
|
|
|
64
64
|
debug('Republishing message: %s', message.properties.messageId);
|
|
65
65
|
|
|
66
66
|
const originalQueue = _.get(message, 'properties.headers.rascal.originalQueue');
|
|
67
|
-
const republished = _.get(message,
|
|
67
|
+
const republished = _.get(message, ['properties', 'headers', 'rascal', 'recovery', originalQueue, 'republished'], 0);
|
|
68
68
|
|
|
69
69
|
if (strategyConfig.attempts && strategyConfig.attempts <= republished) {
|
|
70
70
|
debug('Skipping recovery - message: %s has already been republished %d times.', message.properties.messageId, republished);
|
|
@@ -72,14 +72,14 @@ module.exports = function SubscriptionRecovery(broker, vhost) {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
const publishOptions = _.cloneDeep(message.properties);
|
|
75
|
-
_.set(publishOptions,
|
|
75
|
+
_.set(publishOptions, ['headers', 'rascal', 'recovery', originalQueue, 'republished'], republished + 1);
|
|
76
76
|
_.set(publishOptions, 'headers.rascal.originalExchange', message.fields.exchange);
|
|
77
77
|
_.set(publishOptions, 'headers.rascal.originalRoutingKey', message.fields.routingKey);
|
|
78
78
|
_.set(publishOptions, 'headers.rascal.error.message', _.truncate(err.message, { length: 1024 }));
|
|
79
79
|
_.set(publishOptions, 'headers.rascal.error.code', err.code);
|
|
80
80
|
_.set(publishOptions, 'headers.rascal.restoreRoutingHeaders', _.has(strategyConfig, 'restoreRoutingHeaders') ? strategyConfig.restoreRoutingHeaders : true);
|
|
81
81
|
|
|
82
|
-
if (strategyConfig.immediateNack) _.set(publishOptions,
|
|
82
|
+
if (strategyConfig.immediateNack) _.set(publishOptions, ['headers', 'rascal', 'recovery', originalQueue, 'immediateNack'], true);
|
|
83
83
|
|
|
84
84
|
vhost.getConfirmChannel((err, publisherChannel) => {
|
|
85
85
|
|
|
@@ -105,7 +105,7 @@ module.exports = function SubscriptionRecovery(broker, vhost) {
|
|
|
105
105
|
debug('Forwarding message: %s', message.properties.messageId);
|
|
106
106
|
|
|
107
107
|
const originalQueue = _.get(message, 'properties.headers.rascal.originalQueue');
|
|
108
|
-
const forwarded = _.get(message,
|
|
108
|
+
const forwarded = _.get(message, ['properties', 'headers', 'rascal', 'recovery', originalQueue, 'forwarded'], 0);
|
|
109
109
|
|
|
110
110
|
if (strategyConfig.attempts && strategyConfig.attempts <= forwarded) {
|
|
111
111
|
debug('Skipping recovery - message: %s has already been forwarded %d times.', message.properties.messageId, forwarded);
|
|
@@ -117,7 +117,7 @@ module.exports = function SubscriptionRecovery(broker, vhost) {
|
|
|
117
117
|
|
|
118
118
|
const forwardOverrides = _.cloneDeep(strategyConfig.options) || {};
|
|
119
119
|
_.set(forwardOverrides, 'restoreRoutingHeaders', _.has(strategyConfig, 'restoreRoutingHeaders') ? strategyConfig.restoreRoutingHeaders : true);
|
|
120
|
-
_.set(forwardOverrides,
|
|
120
|
+
_.set(forwardOverrides, ['options', 'headers', 'rascal', 'recovery', originalQueue, 'forwarded'], forwarded + 1);
|
|
121
121
|
_.set(forwardOverrides, 'options.headers.rascal.error.message', _.truncate(err.message, { length: 1024 }));
|
|
122
122
|
_.set(forwardOverrides, 'options.headers.rascal.error.code', err.code);
|
|
123
123
|
|
package/lib/amqp/Subscription.js
CHANGED
|
@@ -198,8 +198,7 @@ function Subscription(broker, vhost, config, counter) {
|
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
function immediateNack(message) {
|
|
201
|
-
if (_.get(message,
|
|
202
|
-
if (_.get(message, format('properties.headers.rascal.recovery.%s.immediateNack', message.properties.headers.rascal.originalQueue))) return true;
|
|
201
|
+
if (_.get(message, ['properties', 'headers', 'rascal', 'recovery', message.properties.headers.rascal.originalQueue, 'immediateNack'])) return true;
|
|
203
202
|
return false;
|
|
204
203
|
}
|
|
205
204
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rascal",
|
|
3
|
-
"version": "13.1.
|
|
3
|
+
"version": "13.1.2",
|
|
4
4
|
"description": "A config driven wrapper for amqplib supporting multi-host connections, automatic error recovery, redelivery flood protection, transparent encryption / decryption, channel pooling and publication timeouts",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"dependencies": {
|