redis-smq 5.0.2 → 5.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.
Files changed (38) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +28 -35
  3. package/dist/src/system/base.d.ts +5 -5
  4. package/dist/src/system/base.js +18 -19
  5. package/dist/src/system/base.js.map +1 -1
  6. package/dist/src/system/consumer/{consumer-message-rate-provider.d.ts → consumer-message-rate.d.ts} +7 -10
  7. package/dist/src/system/consumer/{consumer-message-rate-provider.js → consumer-message-rate.js} +10 -8
  8. package/dist/src/system/consumer/consumer-message-rate.js.map +1 -0
  9. package/dist/src/system/consumer/consumer.d.ts +3 -4
  10. package/dist/src/system/consumer/consumer.js +24 -15
  11. package/dist/src/system/consumer/consumer.js.map +1 -1
  12. package/dist/src/system/message-rate.d.ts +6 -7
  13. package/dist/src/system/message-rate.js +7 -9
  14. package/dist/src/system/message-rate.js.map +1 -1
  15. package/dist/src/system/producer/producer-message-rate.d.ts +15 -0
  16. package/dist/src/system/producer/{producer-message-rate-provider.js → producer-message-rate.js} +10 -8
  17. package/dist/src/system/producer/producer-message-rate.js.map +1 -0
  18. package/dist/src/system/producer/producer.d.ts +4 -4
  19. package/dist/src/system/producer/producer.js +7 -8
  20. package/dist/src/system/producer/producer.js.map +1 -1
  21. package/dist/src/system/queue-manager/queue-manager.d.ts +3 -2
  22. package/dist/src/system/queue-manager/queue-manager.js +11 -11
  23. package/dist/src/system/queue-manager/queue-manager.js.map +1 -1
  24. package/dist/tsconfig.tsbuildinfo +1 -1
  25. package/dist/types/index.d.ts +2 -6
  26. package/dist/types/index.js.map +1 -1
  27. package/docs/api/consumer.md +17 -3
  28. package/docs/api/message.md +47 -124
  29. package/docs/api/producer.md +16 -6
  30. package/docs/api/scheduler.md +5 -4
  31. package/docs/configuration.md +6 -17
  32. package/docs/http-api.md +2 -2
  33. package/docs/logs.md +2 -7
  34. package/logo.png +0 -0
  35. package/package.json +2 -2
  36. package/dist/src/system/consumer/consumer-message-rate-provider.js.map +0 -1
  37. package/dist/src/system/producer/producer-message-rate-provider.d.ts +0 -15
  38. package/dist/src/system/producer/producer-message-rate-provider.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 5.0.6 (2021-11-26)
4
+
5
+ * Reviewed and updated documentation files.
6
+
7
+ ## 5.0.5 (2021-11-25)
8
+
9
+ * Minor improvements: refactored and cleaned up MessageRate and QueueManager classes.
10
+
11
+ ## 5.0.4 (2021-11-24)
12
+
13
+ * Updated RedisSMQ logo.
14
+ * Bumped redis-smq-monitor to v5.0.3.
15
+
16
+ ## 5.0.3 (2021-11-23)
17
+
18
+ * Updated RedisSMQ logo.
19
+
3
20
  ## 5.0.2 (2021-11-23)
4
21
 
5
22
  * Added RedisSMQ logo.
package/README.md CHANGED
@@ -31,21 +31,19 @@ High-level overview of how RedisSMQ works:
31
31
  ## Features
32
32
 
33
33
  * **[High-performance message processing](docs/performance.md)**
34
- * **Scalable**: A queue can be consumed by many concurrent consumers, running on the same or different hosts.
35
- * **Persistent**: No messages are lost in case of consumer failures.
34
+ * **Scalable**: A queue can be consumed by multiple concurrent consumers, running on different hosts.
35
+ * **Persistent**: Messages are not lost in case of consumer failures.
36
36
  * **Atomic**: A message can be delivered only to one consumer at a time.
37
- * **[Message expiration](docs/api/message.md)**: A message will expire and not be consumed if it has been in the queue for longer than the
38
- TTL (time-to-live).
39
- * **[Message consume timeout](docs/api/message.md)**: The amount of time for a consumer to consume a message. If the timeout exceeded,
40
- message processing is cancelled and the message is re-queued again.
37
+ * **[Message expiration](docs/api/message.md#messageprototypesetttl)**: A message will not be delivered if it has been in a queue for longer
38
+ than a given amount of time, called TTL (time-to-live).
39
+ * **[Message consume timeout](docs/api/message.md#messageprototypesetconsumetimeout)**: Timeout for a consumer to consume a message.
41
40
  * **[Delaying and scheduling message delivery](docs/api/scheduler.md)**: Messages can be configured to be delayed, delivered
42
41
  for N times with an optional period between deliveries, and to be scheduled using CRON expressions.
43
42
  * **[Reliable Priority Queues](docs/priority-queues.md)**: Supports priority messaging.
44
43
  * **[HTTP API](docs/http-api.md)**: an HTTP interface is provided to interact with the MQ.
45
- * **[Web UI](docs/web-ui.md)**: The MQ state (input/processing/acks/unacks messages rates, online consumers, queues, etc.) is provided
46
- and updated in real-time. The Web UI allows monitoring and managing the MQ.
47
- * **[JSON Logging](docs/logs.md)**: Supports JSON log format for troubleshooting and analytic purposes.
48
- * **Highly optimized**: No promises, no async/await, small memory footprint, no memory leaks. See [callbacks vs promises vs async/await benchmarks](http://bluebirdjs.com/docs/benchmarks.html).
44
+ * **[Web UI](docs/web-ui.md)**: Using the Web UI you can monitor and manage the MQ is real-time.
45
+ * **[JSON Logging](docs/logs.md)**: Supports JSON log format for troubleshooting and debugging.
46
+ * **Highly optimized**: Implemented using pure callbacks, with small memory footprint and no memory leaks. See [callbacks vs promises vs async/await benchmarks](http://bluebirdjs.com/docs/benchmarks.html).
49
47
  * **[Configurable](docs/configuration.md)**: Many options and features can be configured.
50
48
  * **Rigorously tested**: With 79+ tests and code coverage no less than 80%.
51
49
  * **Supports both redis & ioredis**: RedisSMQ can be configured to use either `redis` or `ioredis`
@@ -57,7 +55,7 @@ High-level overview of how RedisSMQ works:
57
55
  2. [Installation](#installation)
58
56
  3. [Configuration](#configuration)
59
57
  4. [Usage](#usage)
60
- 1. Basic
58
+ 1. Basics
61
59
  1. [Message Class](#message-class)
62
60
  2. [Producer Class](#producer-class)
63
61
  3. [Consumer Class](#consumer-class)
@@ -109,23 +107,18 @@ See [Configuration](docs/configuration.md) for more details.
109
107
 
110
108
  ### Basics
111
109
 
112
- RedisSMQ provides 3 classes: Message, Producer and Consumer in order to work with the message queue.
110
+ RedisSMQ provides 3 classes: `Message`, `Producer`, and `Consumer` in order to work with the message queue.
113
111
 
114
112
  #### Message Class
115
113
 
116
- Message class is the main component responsible for creating and handling messages. It encapsulates and provides all
117
- the required methods needed to construct and deal with messages.
114
+ `Message` class is responsible for creating and manipulating messages.
118
115
 
119
116
  ```javascript
120
117
  const { Message } = require('redis-smq');
121
118
  const message = new Message();
122
119
  message
123
120
  .setBody({hello: 'world'})
124
- .setTTL(3600000)
125
- .setScheduledDelay(10000) // in millis
126
- .setScheduledRepeat(6)
127
- .setScheduledPeriod(60000)
128
- .setScheduledCron('* 30 * * * *');
121
+ .setTTL(3600000); // in millis
129
122
 
130
123
  let messageTTL = message.getTTL();
131
124
  ```
@@ -134,10 +127,8 @@ See [Message Reference](docs/api/message.md) for more details.
134
127
 
135
128
  #### Producer Class
136
129
 
137
- Producer class is in turn responsible for producing messages.
138
-
139
- Each producer instance has an associated message queue and provides `produceMessage()` method which handle the
140
- message and decides to either send it to the message queue scheduler or to immediately enqueue it for delivery.
130
+ `Producer` class is in turn responsible for publishing messages. Each `Producer` instance is associated with a message
131
+ queue and provides the `produceMessage()` method to publish a message.
141
132
 
142
133
  ```javascript
143
134
  // filename: ./examples/javascript/ns1-test-queue-producer.js
@@ -162,12 +153,13 @@ See [Producer Reference](docs/api/producer.md) for more details.
162
153
 
163
154
  #### Consumer Class
164
155
 
165
- The Consumer class is the base class for all consumers. All consumers extends this base class and implements
166
- `consume()` method which got called once a message is received.
156
+ The `Consumer` class is the parent class for all your consumers, which are required to implement the abstract method
157
+ `consume()` from the parent class.
167
158
 
168
- Consumer classes are saved per files. Each consumer file represents a consumer class.
159
+ Once a message is received, the `consume()` method get invoked with the received message as its first argument.
169
160
 
170
- A consumer class may look like:
161
+ In a typical scenario, consumers are saved per files, so that each file represents a consumer, which can be started
162
+ from CLI as shown in the example bellow.
171
163
 
172
164
  ```javascript
173
165
  // filename: ./examples/javascript/ns1-test-queue-consumer.js
@@ -186,22 +178,23 @@ const consumer = new TestQueueConsumer('test_queue');
186
178
  consumer.run();
187
179
  ```
188
180
 
189
- To start consuming messages, a consumer needs first to be launched from CLI to connect to the Redis server
190
- and wait for messages:
181
+ Starting a consumer:
191
182
 
192
183
  ```text
193
184
  $ node ./examples/javascript/test-queue-consumer.js
194
185
  ```
195
186
 
196
- Once a message is received and processed the consumer should acknowledge the message by invoking the callback function
197
- without arguments.
187
+ To acknowledge a received message, you invoke the callback function without arguments.
198
188
 
199
189
  The message acknowledgment informs the MQ that the message has been successfully consumed.
200
190
 
201
- If an error occurs, the message should be unacknowledged and the error should be reported to the MQ by
202
- calling the callback function. Failed messages are re-queued and delivered again unless **message retry threshold** is
203
- exceeded. Then the messages are moved to **dead-letter queue (DLQ)**. Each message queue has a system generated
204
- corresponding queue called dead-letter queue where all failed messages are moved to.
191
+ If an error occurred, the message is unacknowledged by passing the error to the callback function.
192
+
193
+ By default, unacknowledged messages are re-queued and delivered again unless **message retry threshold** is exceeded.
194
+ Then the messages are moved to **dead-letter queue (DLQ)**.
195
+
196
+ Each message queue has a system generated corresponding queue called `dead-letter queue` that holds all messages
197
+ that couldn't be processed or can not be delivered to consumers.
205
198
 
206
199
  See [Consumer Reference](docs/api/consumer.md) for more details.
207
200
 
@@ -1,12 +1,12 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
- import { IConfig, IMessageRateProvider, ICallback, TInstanceRedisKeys, TUnaryFunction, TFunction } from '../../types';
3
+ import { IConfig, ICallback, TInstanceRedisKeys, TUnaryFunction, TFunction } from '../../types';
4
4
  import { PowerManager } from './common/power-manager';
5
5
  import * as BunyanLogger from 'bunyan';
6
6
  import { MessageRate } from './message-rate';
7
7
  import { Broker } from './broker';
8
8
  import { RedisClient } from './redis-client/redis-client';
9
- export declare abstract class Base extends EventEmitter {
9
+ export declare abstract class Base<TMessageRate extends MessageRate> extends EventEmitter {
10
10
  protected readonly id: string;
11
11
  protected readonly queueName: string;
12
12
  protected readonly config: IConfig;
@@ -14,13 +14,13 @@ export declare abstract class Base extends EventEmitter {
14
14
  protected readonly powerManager: PowerManager;
15
15
  protected readonly redisKeys: TInstanceRedisKeys;
16
16
  protected broker: Broker | null;
17
- protected messageRate: MessageRate | null;
18
17
  protected sharedRedisClient: RedisClient | null;
18
+ protected messageRate: TMessageRate | null;
19
19
  constructor(queueName: string, config: IConfig);
20
20
  private setUpSharedRedisClient;
21
- private setUpMessageRate;
22
21
  private setUpMessageQueue;
23
22
  private setUpBroker;
23
+ private setUpMessageRate;
24
24
  protected registerEventsHandlers(): void;
25
25
  protected goingUp(): TFunction[];
26
26
  protected goingDown(): TUnaryFunction<ICallback<void>>[];
@@ -34,5 +34,5 @@ export declare abstract class Base extends EventEmitter {
34
34
  getConfig(): IConfig;
35
35
  getQueueName(): string;
36
36
  getRedisKeys(): TInstanceRedisKeys;
37
- abstract getMessageRateProvider(): IMessageRateProvider;
37
+ abstract getMessageRate(redisClient: RedisClient): TMessageRate;
38
38
  }
@@ -6,7 +6,6 @@ const events_1 = require("events");
6
6
  const async = require("async");
7
7
  const power_manager_1 = require("./common/power-manager");
8
8
  const logger_1 = require("./common/logger");
9
- const message_rate_1 = require("./message-rate");
10
9
  const events_2 = require("./common/events");
11
10
  const broker_1 = require("./broker");
12
11
  const redis_keys_1 = require("./common/redis-keys");
@@ -19,8 +18,8 @@ class Base extends events_1.EventEmitter {
19
18
  var _a;
20
19
  super();
21
20
  this.broker = null;
22
- this.messageRate = null;
23
21
  this.sharedRedisClient = null;
22
+ this.messageRate = null;
24
23
  this.setUpSharedRedisClient = (cb) => {
25
24
  this.logger.debug(`Set up shared RedisClient instance...`);
26
25
  redis_client_1.RedisClient.getNewInstance(this.config, (err, client) => {
@@ -34,28 +33,12 @@ class Base extends events_1.EventEmitter {
34
33
  }
35
34
  });
36
35
  };
37
- this.setUpMessageRate = (cb) => {
38
- this.logger.debug(`Set up MessageRate...`);
39
- const { monitor } = this.config;
40
- if (monitor && monitor.enabled) {
41
- if (!this.sharedRedisClient)
42
- cb(new Error(`Expected an instance of RedisClient`));
43
- else {
44
- this.messageRate = new message_rate_1.MessageRate(this, this.sharedRedisClient);
45
- cb();
46
- }
47
- }
48
- else {
49
- this.logger.debug(`Skipping MessageRate setup as monitor not enabled...`);
50
- cb();
51
- }
52
- };
53
36
  this.setUpMessageQueue = (messageManager, cb) => {
54
37
  this.logger.debug(`Set up message queue (${this.queueName})...`);
55
38
  if (!this.sharedRedisClient)
56
39
  cb(new Error(`Expected an instance of RedisClient`));
57
40
  else
58
- queue_manager_1.QueueManager.setUpMessageQueue(this, this.sharedRedisClient, cb);
41
+ queue_manager_1.QueueManager.setUpMessageQueue(this.queueName, this.sharedRedisClient, cb);
59
42
  };
60
43
  this.setUpBroker = (cb) => {
61
44
  this.logger.debug(`Set up Broker instance...`);
@@ -67,6 +50,22 @@ class Base extends events_1.EventEmitter {
67
50
  cb();
68
51
  }
69
52
  };
53
+ this.setUpMessageRate = (cb) => {
54
+ this.logger.debug(`Set up MessageRate...`);
55
+ const { monitor } = this.config;
56
+ if (monitor && monitor.enabled) {
57
+ if (!this.sharedRedisClient)
58
+ cb(new Error(`Expected an instance of RedisClient`));
59
+ else {
60
+ this.messageRate = this.getMessageRate(this.sharedRedisClient);
61
+ cb();
62
+ }
63
+ }
64
+ else {
65
+ this.logger.debug(`Skipping MessageRate setup as monitor not enabled...`);
66
+ cb();
67
+ }
68
+ };
70
69
  if (config.namespace) {
71
70
  redis_keys_1.redisKeys.setNamespace(config.namespace);
72
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/system/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/system/base.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { Consumer } from './consumer';
2
- import { IConsumerStats, IMessageRateProvider } from '../../../types';
3
- export declare class ConsumerMessageRateProvider implements IMessageRateProvider {
2
+ import { IConsumerMessageRateFields } from '../../../types';
3
+ import { MessageRate } from '../message-rate';
4
+ import { RedisClient } from '../redis-client/redis-client';
5
+ export declare class ConsumerMessageRate extends MessageRate<IConsumerMessageRateFields> {
4
6
  protected consumer: Consumer;
5
7
  protected keyConsumerRateProcessing: string;
6
8
  protected keyConsumerRateAcknowledged: string;
@@ -13,14 +15,9 @@ export declare class ConsumerMessageRateProvider implements IMessageRateProvider
13
15
  protected unacknowledgedRate: number;
14
16
  protected idleStack: number[];
15
17
  protected isIdle: boolean;
16
- constructor(consumer: Consumer);
17
- getRates(): {
18
- processingRate: number;
19
- acknowledgedRate: number;
20
- unacknowledgedRate: number;
21
- isIdle: boolean;
22
- };
23
- format(stats: IConsumerStats): string[];
18
+ constructor(consumer: Consumer, redisClient: RedisClient);
19
+ getRateFields(): IConsumerMessageRateFields;
20
+ formatRateFields(rates: IConsumerMessageRateFields): string[];
24
21
  incrementProcessingSlot(): void;
25
22
  incrementAcknowledgedSlot(): void;
26
23
  incrementUnacknowledgedSlot(): void;
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConsumerMessageRateProvider = void 0;
3
+ exports.ConsumerMessageRate = void 0;
4
4
  const events_1 = require("../common/events");
5
- class ConsumerMessageRateProvider {
6
- constructor(consumer) {
5
+ const message_rate_1 = require("../message-rate");
6
+ class ConsumerMessageRate extends message_rate_1.MessageRate {
7
+ constructor(consumer, redisClient) {
8
+ super(redisClient);
7
9
  this.processingSlots = new Array(1000).fill(0);
8
10
  this.acknowledgedSlots = new Array(1000).fill(0);
9
11
  this.unacknowledgedSlots = new Array(1000).fill(0);
@@ -18,7 +20,7 @@ class ConsumerMessageRateProvider {
18
20
  this.keyConsumerRateAcknowledged = keyRateConsumerAcknowledged;
19
21
  this.keyConsumerRateUnacknowledged = keyRateConsumerUnacknowledged;
20
22
  }
21
- getRates() {
23
+ getRateFields() {
22
24
  this.processingRate = this.processingSlots.reduce((acc, cur) => acc + cur, 0);
23
25
  this.processingSlots.fill(0);
24
26
  this.acknowledgedRate = this.acknowledgedSlots.reduce((acc, cur) => acc + cur, 0);
@@ -44,9 +46,9 @@ class ConsumerMessageRateProvider {
44
46
  isIdle: this.isIdle,
45
47
  };
46
48
  }
47
- format(stats) {
49
+ formatRateFields(rates) {
48
50
  const now = Date.now();
49
- const { processingRate, acknowledgedRate, unacknowledgedRate } = stats;
51
+ const { processingRate, acknowledgedRate, unacknowledgedRate } = rates;
50
52
  return [
51
53
  this.keyConsumerRateProcessing,
52
54
  `${processingRate}|${now}`,
@@ -69,5 +71,5 @@ class ConsumerMessageRateProvider {
69
71
  this.unacknowledgedSlots[slot] += 1;
70
72
  }
71
73
  }
72
- exports.ConsumerMessageRateProvider = ConsumerMessageRateProvider;
73
- //# sourceMappingURL=consumer-message-rate-provider.js.map
74
+ exports.ConsumerMessageRate = ConsumerMessageRate;
75
+ //# sourceMappingURL=consumer-message-rate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-message-rate.js","sourceRoot":"","sources":["../../../../src/system/consumer/consumer-message-rate.ts"],"names":[],"mappings":";;;AAEA,6CAA0C;AAC1C,kDAA8C;AAG9C,MAAa,mBAAoB,SAAQ,0BAAuC;IAiB9E,YAAY,QAAkB,EAAE,WAAwB;QACtD,KAAK,CAAC,WAAW,CAAC,CAAC;QAbX,oBAAe,GAAa,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpD,sBAAiB,GAAa,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,wBAAmB,GAAa,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxD,mBAAc,GAAG,CAAC,CAAC;QACnB,qBAAgB,GAAG,CAAC,CAAC;QACrB,uBAAkB,GAAG,CAAC,CAAC;QACvB,cAAS,GAAa,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAI3C,WAAM,GAAG,KAAK,CAAC;QAIvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,MAAM,EACJ,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,GAC9B,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC5B,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;QAC3D,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAC;QAC/D,IAAI,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;IACrE,CAAC;IAED,aAAa;QACX,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAC/C,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EACvC,CAAC,CACF,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CACnD,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EACvC,CAAC,CACF,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CACvD,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EACvC,CAAC,CACF,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,IACE,IAAI,CAAC,cAAc,KAAK,CAAC;YACzB,IAAI,CAAC,gBAAgB,KAAK,CAAC;YAC3B,IAAI,CAAC,kBAAkB,KAAK,CAAC,EAC7B;YACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACxB;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC;QAChE,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,KAAiC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAC;QACvE,OAAO;YACL,IAAI,CAAC,yBAAyB;YAC9B,GAAG,cAAc,IAAI,GAAG,EAAE;YAC1B,IAAI,CAAC,2BAA2B;YAChC,GAAG,gBAAgB,IAAI,GAAG,EAAE;YAC5B,IAAI,CAAC,6BAA6B;YAClC,GAAG,kBAAkB,IAAI,GAAG,EAAE;SAC/B,CAAC;IACJ,CAAC;IAED,uBAAuB;QACrB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,yBAAyB;QACvB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC;QAC1C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,2BAA2B;QACzB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC;QAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF;AA7FD,kDA6FC"}
@@ -1,13 +1,12 @@
1
1
  import { EMessageUnacknowledgedCause, ICallback, TUnaryFunction } from '../../../types';
2
2
  import { Base } from '../base';
3
3
  import { Message } from '../message';
4
- import { ConsumerMessageRateProvider } from './consumer-message-rate-provider';
4
+ import { ConsumerMessageRate } from './consumer-message-rate';
5
5
  import { RedisClient } from '../redis-client/redis-client';
6
6
  import { ConsumerFrontend } from './consumer-frontend';
7
- export declare class Consumer extends Base {
7
+ export declare class Consumer extends Base<ConsumerMessageRate> {
8
8
  private consumerRedisClient;
9
9
  private heartbeat;
10
- private messageRateProvider;
11
10
  private consumerWorkers;
12
11
  private consumerFrontend;
13
12
  protected getConsumerRedisClient(cb: TUnaryFunction<RedisClient>): void;
@@ -17,6 +16,6 @@ export declare class Consumer extends Base {
17
16
  protected handleReceivedMessage(json: string): void;
18
17
  protected goingUp(): TUnaryFunction<ICallback<void>>[];
19
18
  protected goingDown(): TUnaryFunction<ICallback<void>>[];
20
- getMessageRateProvider(): ConsumerMessageRateProvider;
21
19
  setConsumerFrontend(consumerMessageHandler: ConsumerFrontend): Consumer;
20
+ getMessageRate(redisClient: RedisClient): ConsumerMessageRate;
22
21
  }
@@ -4,19 +4,19 @@ exports.Consumer = void 0;
4
4
  const types_1 = require("../../../types");
5
5
  const base_1 = require("../base");
6
6
  const message_1 = require("../message");
7
- const consumer_message_rate_provider_1 = require("./consumer-message-rate-provider");
7
+ const consumer_message_rate_1 = require("./consumer-message-rate");
8
8
  const events_1 = require("../common/events");
9
9
  const heartbeat_1 = require("./heartbeat");
10
10
  const redis_client_1 = require("../redis-client/redis-client");
11
11
  const path_1 = require("path");
12
12
  const consumer_workers_1 = require("./consumer-workers");
13
13
  const worker_runner_1 = require("../common/worker-runner");
14
+ const queue_manager_1 = require("../queue-manager/queue-manager");
14
15
  class Consumer extends base_1.Base {
15
16
  constructor() {
16
17
  super(...arguments);
17
18
  this.consumerRedisClient = null;
18
19
  this.heartbeat = null;
19
- this.messageRateProvider = null;
20
20
  this.consumerWorkers = null;
21
21
  this.consumerFrontend = null;
22
22
  }
@@ -103,14 +103,14 @@ class Consumer extends base_1.Base {
103
103
  });
104
104
  this.on(events_1.events.MESSAGE_ACKNOWLEDGED, (msg) => {
105
105
  this.logger.info(`Message (ID ${msg.getId()}) has been acknowledged.`);
106
- if (this.messageRateProvider)
107
- this.messageRateProvider.incrementAcknowledgedSlot();
106
+ if (this.messageRate)
107
+ this.messageRate.incrementAcknowledgedSlot();
108
108
  this.emit(events_1.events.MESSAGE_NEXT);
109
109
  });
110
110
  this.on(events_1.events.MESSAGE_UNACKNOWLEDGED, (msg, cause) => {
111
111
  this.logger.info(`Message (ID ${msg.getId()}) has been unacknowledged. Cause: ${cause}.`);
112
- if (this.messageRateProvider)
113
- this.messageRateProvider.incrementUnacknowledgedSlot();
112
+ if (this.messageRate)
113
+ this.messageRate.incrementUnacknowledgedSlot();
114
114
  this.emit(events_1.events.MESSAGE_NEXT);
115
115
  });
116
116
  }
@@ -124,8 +124,8 @@ class Consumer extends base_1.Base {
124
124
  }
125
125
  else {
126
126
  this.logger.info(`Trying to consume message (ID ${message.getId()})...`);
127
- if (this.messageRateProvider)
128
- this.messageRateProvider.incrementProcessingSlot();
127
+ if (this.messageRate)
128
+ this.messageRate.incrementProcessingSlot();
129
129
  this.handleConsume(message);
130
130
  }
131
131
  }
@@ -164,9 +164,18 @@ class Consumer extends base_1.Base {
164
164
  cb();
165
165
  });
166
166
  };
167
+ const setUpConsumerProcessingQueue = (cb) => {
168
+ this.logger.debug(`Set up consumer processing queue...`);
169
+ this.getSharedRedisClient((client) => queue_manager_1.QueueManager.setUpProcessingQueue(this, client, cb));
170
+ };
167
171
  return super
168
172
  .goingUp()
169
- .concat([setUpConsumerRedisClient, setUpHeartbeat, setUpConsumerWorkers]);
173
+ .concat([
174
+ setUpConsumerRedisClient,
175
+ setUpHeartbeat,
176
+ setUpConsumerWorkers,
177
+ setUpConsumerProcessingQueue,
178
+ ]);
170
179
  }
171
180
  goingDown() {
172
181
  const tearDownConsumerWorkers = (cb) => {
@@ -217,16 +226,16 @@ class Consumer extends base_1.Base {
217
226
  tearDownConsumerRedisClient,
218
227
  ].concat(super.goingDown());
219
228
  }
220
- getMessageRateProvider() {
221
- if (!this.messageRateProvider) {
222
- this.messageRateProvider = new consumer_message_rate_provider_1.ConsumerMessageRateProvider(this);
223
- }
224
- return this.messageRateProvider;
225
- }
226
229
  setConsumerFrontend(consumerMessageHandler) {
227
230
  this.consumerFrontend = consumerMessageHandler;
228
231
  return this;
229
232
  }
233
+ getMessageRate(redisClient) {
234
+ if (!this.messageRate) {
235
+ this.messageRate = new consumer_message_rate_1.ConsumerMessageRate(this, redisClient);
236
+ }
237
+ return this.messageRate;
238
+ }
230
239
  }
231
240
  exports.Consumer = Consumer;
232
241
  //# sourceMappingURL=consumer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consumer.js","sourceRoot":"","sources":["../../../../src/system/consumer/consumer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consumer.js","sourceRoot":"","sources":["../../../../src/system/consumer/consumer.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,15 @@
1
1
  /// <reference types="node" />
2
- import { ICallback, IMessageRateProvider } from '../../types';
3
- import { Base } from './base';
2
+ import { ICallback } from '../../types';
4
3
  import { Ticker } from './common/ticker';
5
4
  import { RedisClient } from './redis-client/redis-client';
6
5
  import { EventEmitter } from 'events';
7
- export declare class MessageRate extends EventEmitter {
8
- protected instance: Base;
9
- protected messageRateProvider: IMessageRateProvider;
6
+ export declare abstract class MessageRate<TMessageRateFields extends Record<string, unknown> = Record<string, unknown>> extends EventEmitter {
10
7
  protected redisClient: RedisClient;
11
8
  protected ticker: Ticker;
12
- constructor(instance: Base, redisClient: RedisClient);
9
+ constructor(redisClient: RedisClient);
13
10
  protected onTick(): void;
14
- protected publish(stats: Record<string, any>): void;
11
+ protected publish(data: string[]): void;
12
+ abstract getRateFields(): TMessageRateFields;
13
+ abstract formatRateFields(rates: TMessageRateFields): string[];
15
14
  quit(cb: ICallback<void>): void;
16
15
  }
@@ -4,25 +4,23 @@ exports.MessageRate = void 0;
4
4
  const events_1 = require("./common/events");
5
5
  const ticker_1 = require("./common/ticker");
6
6
  const events_2 = require("events");
7
+ const redis_keys_1 = require("./common/redis-keys");
7
8
  class MessageRate extends events_2.EventEmitter {
8
- constructor(instance, redisClient) {
9
+ constructor(redisClient) {
9
10
  super();
10
- this.instance = instance;
11
11
  this.redisClient = redisClient;
12
- this.messageRateProvider = instance.getMessageRateProvider();
13
12
  this.ticker = new ticker_1.Ticker(() => {
14
13
  this.onTick();
15
14
  }, 1000);
16
15
  this.ticker.runTimer();
17
16
  }
18
17
  onTick() {
19
- const stats = this.messageRateProvider.getRates();
20
- this.publish(stats);
18
+ const rates = this.getRateFields();
19
+ this.publish(this.formatRateFields(rates));
21
20
  }
22
- publish(stats) {
23
- const formatted = this.messageRateProvider.format(stats);
24
- const { keyIndexRates } = this.instance.getRedisKeys();
25
- this.redisClient.hmset(keyIndexRates, formatted, () => void 0);
21
+ publish(data) {
22
+ const { keyIndexRates } = redis_keys_1.redisKeys.getGlobalKeys();
23
+ this.redisClient.hmset(keyIndexRates, data, () => void 0);
26
24
  }
27
25
  quit(cb) {
28
26
  this.ticker.once(events_1.events.DOWN, cb);
@@ -1 +1 @@
1
- {"version":3,"file":"message-rate.js","sourceRoot":"","sources":["../../../src/system/message-rate.ts"],"names":[],"mappings":";;;AAEA,4CAAyC;AACzC,4CAAyC;AAEzC,mCAAsC;AAEtC,MAAa,WAAY,SAAQ,qBAAY;IAM3C,YAAY,QAAc,EAAE,WAAwB;QAClD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,MAAM;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAES,OAAO,CAAC,KAA0B;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QACvD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,EAAmB;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;CACF;AAhCD,kCAgCC"}
1
+ {"version":3,"file":"message-rate.js","sourceRoot":"","sources":["../../../src/system/message-rate.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AACzC,4CAAyC;AAEzC,mCAAsC;AACtC,oDAAgD;AAEhD,MAAsB,WAEpB,SAAQ,qBAAY;IAIpB,YAAY,WAAwB;QAClC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,MAAM;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;IAES,OAAO,CAAC,IAAc;QAC9B,MAAM,EAAE,aAAa,EAAE,GAAG,sBAAS,CAAC,aAAa,EAAE,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAMD,IAAI,CAAC,EAAmB;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;CACF;AAjCD,kCAiCC"}
@@ -0,0 +1,15 @@
1
+ import { Producer } from './producer';
2
+ import { IProducerMessageRateFields } from '../../../types';
3
+ import { MessageRate } from '../message-rate';
4
+ import { RedisClient } from '../redis-client/redis-client';
5
+ export declare class ProducerMessageRate extends MessageRate<IProducerMessageRateFields> {
6
+ protected inputSlots: number[];
7
+ protected inputRate: number;
8
+ protected producer: Producer;
9
+ protected keyIndexRate: string;
10
+ protected keyProducerRateInput: string;
11
+ constructor(producer: Producer, redisClient: RedisClient);
12
+ getRateFields(): IProducerMessageRateFields;
13
+ formatRateFields(rates: IProducerMessageRateFields): string[];
14
+ incrementInputSlot(): void;
15
+ }