@autofleet/rabbit 3.2.5 → 3.2.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.
- package/dist/index.js +6 -0
- package/package.json +1 -1
- package/src/index.ts +6 -0
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ const moment_1 = __importDefault(require("moment"));
|
|
|
10
10
|
const redis_lock_1 = __importDefault(require("redis-lock"));
|
|
11
11
|
const amqp_connection_manager_1 = require("amqp-connection-manager");
|
|
12
12
|
const zehut_1 = require("@autofleet/zehut");
|
|
13
|
+
const uuid_1 = require("uuid");
|
|
13
14
|
const logger_1 = __importDefault(require("./logger"));
|
|
14
15
|
const rabbitError_1 = __importDefault(require("./lib/rabbitError"));
|
|
15
16
|
const redis_1 = __importDefault(require("./lib/redis"));
|
|
@@ -39,6 +40,7 @@ class RabbitMq {
|
|
|
39
40
|
};
|
|
40
41
|
this.ack = (channel, msg, shouldUpdateRedisTimestamp = false, releaseLock = null) => async (userMsg) => {
|
|
41
42
|
if (msg) {
|
|
43
|
+
debug('rabbit acking message', { deliveryTag: msg.fields.deliveryTag });
|
|
42
44
|
await channel.ack(msg);
|
|
43
45
|
const { properties: { headers } } = msg;
|
|
44
46
|
const timestamp = headers?.creationTimestamp;
|
|
@@ -71,6 +73,7 @@ class RabbitMq {
|
|
|
71
73
|
: 1,
|
|
72
74
|
});
|
|
73
75
|
}
|
|
76
|
+
debug('rabbit nacking message', { deliveryTag: msg.fields.deliveryTag });
|
|
74
77
|
await channel.ack(msg);
|
|
75
78
|
}
|
|
76
79
|
else {
|
|
@@ -345,6 +348,7 @@ class RabbitMq {
|
|
|
345
348
|
async consumeFromRabbit(queue, callback, options) {
|
|
346
349
|
const optionsWithDefaults = { ...consts_1.DEFAULT_OPTIONS, ...options };
|
|
347
350
|
RabbitMq.validateName('queue', queue);
|
|
351
|
+
const uniqueId = uuid_1.v4();
|
|
348
352
|
const { limit, deadMessageTtl, useConsumeWithLock, lockTimeout, auditContext, enableRabbitTrace, } = optionsWithDefaults;
|
|
349
353
|
if (useConsumeWithLock) {
|
|
350
354
|
if (!this.redisLock) {
|
|
@@ -399,6 +403,7 @@ class RabbitMq {
|
|
|
399
403
|
if (messageAcked) {
|
|
400
404
|
return;
|
|
401
405
|
}
|
|
406
|
+
debug('rabbit localAck', { messageAcked, uniqueId, deliveryTag: msg.fields.deliveryTag });
|
|
402
407
|
messageAcked = true;
|
|
403
408
|
return this.ack(confirmChannel, msg, true, releaseLock)(msg);
|
|
404
409
|
};
|
|
@@ -406,6 +411,7 @@ class RabbitMq {
|
|
|
406
411
|
if (messageAcked) {
|
|
407
412
|
return;
|
|
408
413
|
}
|
|
414
|
+
debug('rabbit localNack', { messageAcked, uniqueId, deliveryTag: msg.fields.deliveryTag });
|
|
409
415
|
messageAcked = true;
|
|
410
416
|
return this.nack(confirmChannel, queue, optionsWithDefaults, { messageTtl: deadMessageTtl }, msg, releaseLock)(msg, nackOptions);
|
|
411
417
|
};
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
import {
|
|
14
14
|
getCurrentPayload, newTrace, traceTypes, createOrSetRabbitTrace, outbreak,
|
|
15
15
|
} from '@autofleet/zehut';
|
|
16
|
+
import { v4 } from 'uuid';
|
|
16
17
|
import logger from './logger';
|
|
17
18
|
import RabbitError from './lib/rabbitError';
|
|
18
19
|
import getRedisInstance, { RedisConfig } from './lib/redis';
|
|
@@ -203,6 +204,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
203
204
|
|
|
204
205
|
public ack = (channel: ConfirmChannel, msg: ConsumeMessageOrNull, shouldUpdateRedisTimestamp = false, releaseLock = null) => async (userMsg: ConsumeMessage) : Promise<any> => {
|
|
205
206
|
if (msg) {
|
|
207
|
+
debug('rabbit acking message', { deliveryTag: msg.fields.deliveryTag });
|
|
206
208
|
await channel.ack(msg);
|
|
207
209
|
const { properties: { headers } } = msg;
|
|
208
210
|
const timestamp = headers?.creationTimestamp;
|
|
@@ -252,6 +254,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
252
254
|
: 1,
|
|
253
255
|
});
|
|
254
256
|
}
|
|
257
|
+
debug('rabbit nacking message', { deliveryTag: msg.fields.deliveryTag });
|
|
255
258
|
await channel.ack(msg);
|
|
256
259
|
} else {
|
|
257
260
|
logger.error('no channel or msg', {
|
|
@@ -495,6 +498,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
495
498
|
private async consumeFromRabbit(queue: string, callback: CallbackFunction, options?: ConsumeOptions): Promise<any> {
|
|
496
499
|
const optionsWithDefaults = { ...DEFAULT_OPTIONS, ...options };
|
|
497
500
|
RabbitMq.validateName('queue', queue);
|
|
501
|
+
const uniqueId = v4();
|
|
498
502
|
const {
|
|
499
503
|
limit, deadMessageTtl, useConsumeWithLock, lockTimeout, auditContext, enableRabbitTrace,
|
|
500
504
|
} = optionsWithDefaults;
|
|
@@ -557,6 +561,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
557
561
|
if (messageAcked) {
|
|
558
562
|
return;
|
|
559
563
|
}
|
|
564
|
+
debug('rabbit localAck', { messageAcked, uniqueId, deliveryTag: msg.fields.deliveryTag });
|
|
560
565
|
messageAcked = true;
|
|
561
566
|
return this.ack(confirmChannel, msg, true, releaseLock)(msg);
|
|
562
567
|
};
|
|
@@ -565,6 +570,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
565
570
|
if (messageAcked) {
|
|
566
571
|
return;
|
|
567
572
|
}
|
|
573
|
+
debug('rabbit localNack', { messageAcked, uniqueId, deliveryTag: msg.fields.deliveryTag });
|
|
568
574
|
messageAcked = true;
|
|
569
575
|
return this.nack(confirmChannel, queue, optionsWithDefaults, { messageTtl: deadMessageTtl }, msg, releaseLock)(msg, nackOptions);
|
|
570
576
|
};
|