elasticio-sailor-nodejs 2.6.29 → 2.7.0-beta.0

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 CHANGED
@@ -1,3 +1,7 @@
1
+ ## 2.7.0 (September 15, 2022)
2
+
3
+ * Add AMQP_PERSISTENT_MESSAGES configuration env var to enable persistent delivery mode.
4
+
1
5
  ## 2.6.29 (July 14, 2022)
2
6
 
3
7
  * Enabled keep-alive for global HTTPS agent ([#6359](https://github.com/elasticio/elasticio/issues/6359))
package/lib/amqp.js CHANGED
@@ -205,21 +205,23 @@ class Amqp {
205
205
  await this._ensureConsumerChannel();
206
206
 
207
207
  const { consumerTag } = await this.consumerChannel.consume(queue, async (amqpMessage) => {
208
+ if (!amqpMessage) {
209
+ log.warn('Consumer cancelled by rabbitmq');
210
+ return;
211
+ }
208
212
  let message;
209
213
  try {
210
214
  message = this._decodeMessage(amqpMessage);
211
- } catch (e) {
212
- log.error(e,
213
- 'Error occurred while parsing message #%j payload',
214
- amqpMessage.fields.deliveryTag
215
- );
215
+ } catch (err) {
216
+ log.error({ err, deliveryTag: amqpMessage.fields.deliveryTag },
217
+ 'Error occurred while parsing message payload');
216
218
  this.reject(amqpMessage);
217
219
  return;
218
220
  }
219
221
  try {
220
222
  await messageHandler(message, amqpMessage);
221
- } catch (e) {
222
- log.error(e, 'Failed to process message #%j, reject', amqpMessage.fields.deliveryTag);
223
+ } catch (err) {
224
+ log.error({ err, deliveryTag: amqpMessage.fields.deliveryTag }, 'Failed to process message, reject');
223
225
  this.reject(amqpMessage);
224
226
  }
225
227
  });
@@ -328,6 +330,9 @@ class Amqp {
328
330
  if (iteration) {
329
331
  options.headers.retry = iteration;
330
332
  }
333
+ if (this.settings.AMQP_PERSISTENT_MESSAGES) {
334
+ options.persistent = true;
335
+ }
331
336
 
332
337
  log.debug('Current memory usage: %s Mb', process.memoryUsage().heapUsed / 1048576);
333
338
  log.trace('Pushing to exchange=%s, routingKey=%s, messageSize=%d, options=%j, iteration=%d',
package/lib/settings.js CHANGED
@@ -20,6 +20,7 @@ function getOptionalEnvVars(envVars) {
20
20
  AMQP_PUBLISH_RETRY_DELAY: 100, // 100ms
21
21
  AMQP_PUBLISH_RETRY_ATTEMPTS: Infinity,
22
22
  AMQP_PUBLISH_MAX_RETRY_DELAY: 5 * 60 * 1000, // 5 mins
23
+ AMQP_PERSISTENT_MESSAGES: false,
23
24
  OUTGOING_MESSAGE_SIZE_LIMIT: 10485760,
24
25
  NO_SELF_PASSTRHOUGH: false,
25
26
  PROTOCOL_VERSION: 1,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "elasticio-sailor-nodejs",
3
3
  "description": "The official elastic.io library for bootstrapping and executing for Node.js connectors",
4
- "version": "2.6.29",
4
+ "version": "2.7.0-beta.0",
5
5
  "main": "run.js",
6
6
  "scripts": {
7
7
  "audit": "better-npm-audit audit --level high --production",
@@ -1,7 +0,0 @@
1
- {
2
- "editor.rulers": [
3
- {
4
- "column": 120
5
- }
6
- ]
7
- }