redis-smq 7.0.0-rc.3 → 7.0.0-rc.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 (30) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +36 -35
  3. package/dist/src/lib/base.js +1 -1
  4. package/dist/src/lib/broker/dead-letter-message.d.ts +2 -2
  5. package/dist/src/lib/broker/delay-message.d.ts +3 -3
  6. package/dist/src/lib/broker/requeue-message.d.ts +2 -2
  7. package/dist/src/lib/broker/retry-message.d.ts +2 -2
  8. package/dist/src/lib/broker/schedule-message.d.ts +2 -2
  9. package/dist/src/lib/consumer/consumer-heartbeat.js +2 -2
  10. package/dist/src/lib/consumer/consumer-message-handler/dequeue-message.d.ts +2 -2
  11. package/dist/src/lib/consumer/consumer-message-handler/message-handler-runner.js +1 -1
  12. package/dist/src/lib/consumer/consumer-message-handler/message-handler.d.ts +2 -2
  13. package/dist/src/lib/consumer/consumer-message-handler/message-handler.js +1 -1
  14. package/dist/src/lib/consumer/consumer-message-handler/multiplexed-message-handler/multiplexed-message-handler-runner.js +1 -1
  15. package/dist/src/lib/consumer/consumer-message-handler/processing-queue.d.ts +3 -3
  16. package/dist/src/lib/consumer/consumer-queues.d.ts +2 -2
  17. package/dist/src/lib/consumer/consumer.js +1 -1
  18. package/dist/src/lib/consumer/offline-consumers.d.ts +2 -2
  19. package/dist/src/lib/message-manager/message-manager.js +1 -1
  20. package/dist/src/lib/message-manager/message-storage/sorted-set.js +2 -2
  21. package/dist/src/lib/queue-manager/delete-queue-transaction.d.ts +2 -2
  22. package/dist/src/lib/queue-manager/delete-queue-transaction.js +2 -2
  23. package/dist/src/lib/queue-manager/namespace.js +1 -1
  24. package/dist/src/lib/queue-manager/queue-manager.js +1 -1
  25. package/dist/src/lib/queue-manager/queue-rate-limit.d.ts +2 -2
  26. package/dist/src/lib/queue-manager/queue-rate-limit.js +1 -1
  27. package/dist/src/lib/queue-manager/queue.js +1 -1
  28. package/dist/src/workers/delay.worker.js +1 -1
  29. package/dist/src/workers/requeue.worker.js +1 -1
  30. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 7.0.0-rc.6 (2022-05-31)
4
+
5
+ * Bump up redis-smq-common to v1.0.0-rc.11 (43717f0)
6
+
7
+ ## 7.0.0-rc.5 (2022-05-31)
8
+
9
+ * Bump up redis-smq-common to v1.0.0-rc.10 (e025525)
10
+ * Update docs (738d9d0)
11
+
12
+ ## 7.0.0-rc.4 (2022-05-30)
13
+
14
+ * Update README.md (fef27c1)
15
+ * Support node-redis v4 (c7a91b1)
16
+ * Drop support for node.js v12 (0b5a4e9)
17
+ * Fix outdated documentation (d3bf31b)
18
+ * Fix broken link (fd48c86)
19
+
3
20
  ## 7.0.0-rc.3 (2022-05-26)
4
21
 
5
22
  * Update migration/configuration/message/message-manager references (6d53877)
package/README.md CHANGED
@@ -15,23 +15,23 @@
15
15
 
16
16
  RedisSMQ is a Node.js library for queuing messages (aka jobs) and processing them asynchronously with consumers. Backed by Redis, it allows scaling up your application with ease of use.
17
17
 
18
- > ☝ The master branch reflects the latest changes and updates. It is currently going under heavy development. To view the documentation of the latest stable release see [v6.4.2 docs](https://github.com/weyoss/redis-smq/tree/v6.4.2).
18
+ > ☝ The master branch reflects the latest changes and updates. It is currently going under heavy development. To view the release documentation see [v6.4.2 docs](https://github.com/weyoss/redis-smq/tree/v6.4.2).
19
19
 
20
20
  ## Features
21
21
 
22
- * **[High-performance message processing](docs/performance.md)**
22
+ * **[High-performance message processing](/docs/performance.md)**
23
23
  * **[Multi-Queue Producers](#producer-class) & [Multi-Queue Consumers](#consumer-class)**: Offering very flexible models which make RedisSMQ an ideal message broker for your microservices.
24
24
  * **[Supporting both at-least-once/at-most-once delivery](/docs/api/message.md#messageprototypesetretrythreshold)**: In case of failures, while delivering or processing a message, RedisSMQ can guaranty that the message will be not lost and redelivered again. When configured to do so, RedisSMQ can also ensure that the message is delivered at-most-once.
25
- * **[Message Expiration](docs/api/message.md#messageprototypesetttl)**: A message will not be delivered if it has been in a queue for longer than a given amount of time, called TTL (time-to-live).
26
- * **[Message Consumption Timeout](docs/api/message.md#messageprototypesetconsumetimeout)**: Timeout for consuming messages.
27
- * **[Queue Rate Limiting](docs/queue-rate-limiting.md)**: Allowing you to control the rate at which the messages are consumed from a given queue.
28
- * **[Scheduling Messages](docs/scheduling-messages.md)**: Messages can be configured to be delayed, delivered for N times with an optional period between deliveries, and to be scheduled using CRON expressions.
29
- * **[Reliable Priority Queues](docs/priority-queues.md)**: Supports priority messaging.
30
- * **[Multiplexing](docs/multiplexing.md)**: A feature which allows message handlers to use a single redis connection to dequeue and consume messages.
25
+ * **[Message Expiration](/docs/api/message.md#messageprototypesetttl)**: A message will not be delivered if it has been in a queue for longer than a given amount of time, called TTL (time-to-live).
26
+ * **[Message Consumption Timeout](/docs/api/message.md#messageprototypesetconsumetimeout)**: Timeout for consuming messages.
27
+ * **[Queue Rate Limiting](/docs/queue-rate-limiting.md)**: Allowing you to control the rate at which the messages are consumed from a given queue.
28
+ * **[Scheduling Messages](/docs/scheduling-messages.md)**: Messages can be configured to be delayed, delivered for N times with an optional period between deliveries, and to be scheduled using CRON expressions.
29
+ * **[Reliable Priority Queues](/docs/priority-queues.md)**: Supports priority messaging.
30
+ * **[Multiplexing](/docs/multiplexing.md)**: A feature which allows message handlers to use a single redis connection to dequeue and consume messages.
31
31
  * **[HTTP API](https://github.com/weyoss/redis-smq-monitor)**: an HTTP interface is provided to interact with the MQ.
32
32
  * **[Web UI](https://github.com/weyoss/redis-smq-monitor-client)**: RedisSMQ can be managed also from your web browser.
33
- * **[Logging](docs/logs.md)**: Comes with a built-in JSON logger. But you can also use your own logger instance.
34
- * **[Configurable](docs/configuration.md)**: Many options and features can be configured.
33
+ * **[Logging](https://github.com/weyoss/redis-smq-common/blob/master/docs/logs.md)**: Comes with a built-in JSON logger. But you can also use your own logger instance.
34
+ * **[Configurable](/docs/configuration.md)**: Many options and features can be configured.
35
35
  * **Both redis & ioredis clients are supported**: RedisSMQ can be configured to use either `redis` or `ioredis` to connect to Redis server.
36
36
  * **Rigorously tested**: With 100+ tests and code coverage no less than 80%.
37
37
  * **Highly optimized**: Strongly-typed and 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).
@@ -41,7 +41,7 @@ RedisSMQ is a Node.js library for queuing messages (aka jobs) and processing the
41
41
 
42
42
   
43
43
 
44
- ![RedisSMQ Overview](docs/redis-smq-overview.png)
44
+ ![RedisSMQ Overview](/docs/redis-smq-overview.png)
45
45
 
46
46
  ## Table of Content
47
47
 
@@ -54,16 +54,16 @@ RedisSMQ is a Node.js library for queuing messages (aka jobs) and processing the
54
54
  2. [Producer Class](#producer-class)
55
55
  3. [Consumer Class](#consumer-class)
56
56
  2. Advanced Topics
57
- 1. [Scheduling Messages](docs/scheduling-messages.md)
58
- 2. [Priority Queues](docs/priority-queues.md)
59
- 3. [Queue Rate Limiting](docs/queue-rate-limiting.md)
60
- 4. [Multiplexing](docs/multiplexing.md)
61
- 5. [Message Manager](docs/api/message-manager.md)
62
- 6. [Queue Manager](docs/api/queue-manager.md)
57
+ 1. [Scheduling Messages](/docs/scheduling-messages.md)
58
+ 2. [Priority Queues](/docs/priority-queues.md)
59
+ 3. [Queue Rate Limiting](/docs/queue-rate-limiting.md)
60
+ 4. [Multiplexing](/docs/multiplexing.md)
61
+ 5. [Message Manager](/docs/api/message-manager.md)
62
+ 6. [Queue Manager](/docs/api/queue-manager.md)
63
63
  7. [HTTP API](https://github.com/weyoss/redis-smq-monitor)
64
64
  8. [Web UI](https://github.com/weyoss/redis-smq-monitor-client)
65
- 9. [Logs](docs/logs.md)
66
- 5. [RedisSMQ Architecture](docs/redis-smq-architecture.md)
65
+ 9. [Logs](https://github.com/weyoss/redis-smq-common/blob/master/docs/logs.md)
66
+ 5. [RedisSMQ Architecture](/docs/redis-smq-architecture.md)
67
67
  6. [Performance](#performance)
68
68
  7. [Contributing](#contributing)
69
69
  8. [License](#license)
@@ -83,12 +83,12 @@ npm install redis-smq --save
83
83
 
84
84
  Considerations:
85
85
 
86
- - RedisSMQ is targeted to be used in production environments. Therefore, only active LTS and maintenance LTS Node.js releases (v12, v14, and v16) are supported. The latest stable Node.js version is recommended.
87
- - Minimal Redis server version is 2.6.12. The latest stable Redis version is recommended.
86
+ - Minimal Node.js version is >= 14 (RedisSMQ is tested under current active LTS and maintenance LTS Node.js releases).
87
+ - Minimal Redis server version is 2.6.12 (RedisSMQ is tested under Redis v2.6, v3, v4, v5, and v6).
88
88
 
89
89
  ## Configuration
90
90
 
91
- See [Configuration](docs/configuration.md) for more details.
91
+ See [Configuration](/docs/configuration.md) for more details.
92
92
 
93
93
  ## Usage
94
94
 
@@ -98,8 +98,9 @@ You can create a queue, view existing queues, or delete a queue using the [Queue
98
98
 
99
99
  ```javascript
100
100
  const { QueueManager } = require('redis-smq');
101
+ const config = require('./config')
101
102
 
102
- QueueManager.createInstance((err, queueManager) => {
103
+ QueueManager.createInstance(config, (err, queueManager) => {
103
104
  if (err) console.log(err);
104
105
  else queueManager.queue.create('test_queue', false, (err) => console.log(err));
105
106
  })
@@ -128,7 +129,7 @@ message
128
129
 
129
130
  The `Message` class provides many methods for setting up different message parameters such as message body, message priority, message TTL, etc.
130
131
 
131
- See [Message Reference](docs/api/message.md) for more details.
132
+ See [Message Reference](/docs/api/message.md) for more details.
132
133
 
133
134
  #### Producer Class
134
135
 
@@ -161,7 +162,7 @@ producer.produce(message, (err) => {
161
162
  });
162
163
  ```
163
164
 
164
- See [Producer Reference](docs/api/producer.md) for more details.
165
+ See [Producer Reference](/docs/api/producer.md) for more details.
165
166
 
166
167
  #### Consumer Class
167
168
 
@@ -213,35 +214,35 @@ A `dead-letter queue` is a system generated queue that holds all messages that c
213
214
 
214
215
  By default, RedisSMQ does not store acknowledged and dead-lettered messages for saving disk and memory space, and also to increase message processing performance. If you need such feature, you can enable it from your [configuration](/docs/configuration.md) object.
215
216
 
216
- See [Consumer Reference](docs/api/consumer.md) for more details.
217
+ See [Consumer Reference](/docs/api/consumer.md) for more details.
217
218
 
218
219
  ### Advanced Topics
219
220
 
220
- * [Scheduling Messages](docs/scheduling-messages.md)
221
+ * [Scheduling Messages](/docs/scheduling-messages.md)
221
222
 
222
- * [Priority Queues](docs/priority-queues.md)
223
+ * [Priority Queues](/docs/priority-queues.md)
223
224
 
224
- * [Queue Rate Limiting](docs/queue-rate-limiting.md)
225
+ * [Queue Rate Limiting](/docs/queue-rate-limiting.md)
225
226
 
226
- * [Multiplexing](docs/multiplexing.md)
227
+ * [Multiplexing](/docs/multiplexing.md)
227
228
 
228
- * [Message Manager](docs/api/message-manager.md)
229
+ * [Message Manager](/docs/api/message-manager.md)
229
230
 
230
- * [Queue Manager](docs/api/queue-manager.md)
231
+ * [Queue Manager](/docs/api/queue-manager.md)
231
232
 
232
233
  * [HTTP API](https://github.com/weyoss/redis-smq-monitor)
233
234
 
234
235
  * [Web UI](https://github.com/weyoss/redis-smq-monitor-client)
235
236
 
236
- * [Logs](docs/logs.md)
237
+ * [Logs](https://github.com/weyoss/redis-smq-common/blob/master/docs/logs.md)
237
238
 
238
239
  ## RedisSMQ Architecture
239
240
 
240
- * See [Architecture Overview](docs/redis-smq-architecture.md).
241
+ * See [Architecture Overview](/docs/redis-smq-architecture.md).
241
242
 
242
243
  ## Performance
243
244
 
244
- See [Performance](docs/performance.md) for more details.
245
+ See [Performance](/docs/performance.md) for more details.
245
246
 
246
247
  ## Contributing
247
248
 
@@ -12,7 +12,7 @@ class Base extends events_1.EventEmitter {
12
12
  super();
13
13
  this.sharedRedisClient = null;
14
14
  this.setUpSharedRedisClient = (cb) => {
15
- redis_smq_common_1.RedisClient.getNewInstance(this.config.redis, (err, client) => {
15
+ (0, redis_smq_common_1.createClientInstance)(this.config.redis, (err, client) => {
16
16
  if (err)
17
17
  cb(err);
18
18
  else if (!client)
@@ -1,6 +1,6 @@
1
1
  import { EMessageDeadLetterCause, EMessageUnacknowledgedCause, IRequiredConfig } from '../../../types';
2
2
  import { Message } from '../message/message';
3
- import { ICallback, TRedisClientMulti } from 'redis-smq-common/dist/types';
3
+ import { ICallback, IRedisClientMulti } from 'redis-smq-common/dist/types';
4
4
  import { RedisClient } from 'redis-smq-common';
5
- export declare function deadLetterMessage(config: IRequiredConfig, mixed: TRedisClientMulti, message: Message, keyQueueProcessing: string, unacknowledgedCause: EMessageUnacknowledgedCause, deadLetterCause: EMessageDeadLetterCause): void;
5
+ export declare function deadLetterMessage(config: IRequiredConfig, mixed: IRedisClientMulti, message: Message, keyQueueProcessing: string, unacknowledgedCause: EMessageUnacknowledgedCause, deadLetterCause: EMessageDeadLetterCause): void;
6
6
  export declare function deadLetterMessage(config: IRequiredConfig, mixed: RedisClient, message: Message, keyQueueProcessing: string, unacknowledgedCause: EMessageUnacknowledgedCause, deadLetterCause: EMessageDeadLetterCause, cb: ICallback<void>): void;
@@ -1,7 +1,7 @@
1
1
  import { EMessageUnacknowledgedCause } from '../../../types';
2
2
  import { Message } from '../message/message';
3
- import { ICallback, TRedisClientMulti } from 'redis-smq-common/dist/types';
3
+ import { ICallback, IRedisClientMulti } from 'redis-smq-common/dist/types';
4
4
  import { RedisClient } from 'redis-smq-common';
5
- export declare function delayMessageTransaction(mixed: TRedisClientMulti, message: Message, keyQueueProcessing: string): void;
6
- export declare function delayMessage(mixed: TRedisClientMulti, message: Message, keyQueueProcessing: string, unacknowledgedCause: EMessageUnacknowledgedCause): void;
5
+ export declare function delayMessageTransaction(mixed: IRedisClientMulti, message: Message, keyQueueProcessing: string): void;
6
+ export declare function delayMessage(mixed: IRedisClientMulti, message: Message, keyQueueProcessing: string, unacknowledgedCause: EMessageUnacknowledgedCause): void;
7
7
  export declare function delayMessage(mixed: RedisClient, message: Message, keyQueueProcessing: string, unacknowledgedCause: EMessageUnacknowledgedCause, cb: ICallback<void>): void;
@@ -1,6 +1,6 @@
1
1
  import { EMessageUnacknowledgedCause } from '../../../types';
2
2
  import { Message } from '../message/message';
3
- import { ICallback, TRedisClientMulti } from 'redis-smq-common/dist/types';
3
+ import { ICallback, IRedisClientMulti } from 'redis-smq-common/dist/types';
4
4
  import { RedisClient } from 'redis-smq-common';
5
- export declare function requeueMessage(mixed: TRedisClientMulti, message: Message, keyQueueProcessing: string, unacknowledgedCause: EMessageUnacknowledgedCause): void;
5
+ export declare function requeueMessage(mixed: IRedisClientMulti, message: Message, keyQueueProcessing: string, unacknowledgedCause: EMessageUnacknowledgedCause): void;
6
6
  export declare function requeueMessage(mixed: RedisClient, message: Message, keyQueueProcessing: string, unacknowledgedCause: EMessageUnacknowledgedCause, cb: ICallback<void>): void;
@@ -1,6 +1,6 @@
1
1
  import { EMessageDeadLetterCause, EMessageUnacknowledgedCause, IRequiredConfig } from '../../../types';
2
2
  import { Message } from '../message/message';
3
- import { ICallback, TRedisClientMulti } from 'redis-smq-common/dist/types';
3
+ import { ICallback, IRedisClientMulti } from 'redis-smq-common/dist/types';
4
4
  import { RedisClient } from 'redis-smq-common';
5
- export declare function retryMessage(config: IRequiredConfig, mixed: TRedisClientMulti, processingQueue: string, message: Message, unacknowledgedCause: EMessageUnacknowledgedCause): EMessageDeadLetterCause | void;
5
+ export declare function retryMessage(config: IRequiredConfig, mixed: IRedisClientMulti, processingQueue: string, message: Message, unacknowledgedCause: EMessageUnacknowledgedCause): EMessageDeadLetterCause | void;
6
6
  export declare function retryMessage(config: IRequiredConfig, mixed: RedisClient, processingQueue: string, message: Message, unacknowledgedCause: EMessageUnacknowledgedCause, cb: ICallback<EMessageDeadLetterCause | void>): void;
@@ -1,5 +1,5 @@
1
1
  import { Message } from '../message/message';
2
- import { ICallback, TRedisClientMulti } from 'redis-smq-common/dist/types';
2
+ import { ICallback, IRedisClientMulti } from 'redis-smq-common/dist/types';
3
3
  import { RedisClient } from 'redis-smq-common';
4
- export declare function scheduleMessage(mixed: TRedisClientMulti, message: Message): boolean;
4
+ export declare function scheduleMessage(mixed: IRedisClientMulti, message: Message): boolean;
5
5
  export declare function scheduleMessage(mixed: RedisClient, message: Message, cb: ICallback<void>): void;
@@ -62,7 +62,7 @@ class ConsumerHeartbeat extends events_2.EventEmitter {
62
62
  const multi = this.redisClient.multi();
63
63
  multi.hset(this.keyHeartbeats, this.consumer.getId(), heartbeatPayloadStr);
64
64
  multi.zadd(this.keyHeartbeatTimestamps, timestamp, this.consumer.getId());
65
- this.redisClient.execMulti(multi, (err) => {
65
+ multi.exec((err) => {
66
66
  if (err)
67
67
  this.emit(events_1.events.ERROR, err);
68
68
  else {
@@ -171,7 +171,7 @@ class ConsumerHeartbeat extends events_2.EventEmitter {
171
171
  multi.hdel(keyHeartbeats, consumerId);
172
172
  multi.zrem(keyHeartbeatConsumerWeight, consumerId);
173
173
  (0, offline_consumers_1.handleOfflineConsumer)(config, multi, redisClient, consumerId, done);
174
- }, () => redisClient.execMulti(multi, (err) => cb(err)));
174
+ }, () => multi.exec((err) => cb(err)));
175
175
  }
176
176
  else
177
177
  cb();
@@ -14,8 +14,8 @@ export declare class DequeueMessage {
14
14
  protected priorityQueuing: boolean;
15
15
  constructor(messageHandler: MessageHandler, redisClient: RedisClient);
16
16
  protected dequeueMessageWithPriority(cb: ICallback<string>): void;
17
- protected waitForMessage(cb: ICallback<string>): void;
18
- protected dequeueMessage(cb: ICallback<string>): void;
17
+ protected waitForMessage(cb: ICallback<string | null>): void;
18
+ protected dequeueMessage(cb: ICallback<string | null>): void;
19
19
  dequeue(): void;
20
20
  run(cb: ICallback<void>): void;
21
21
  quit(cb: ICallback<void>): void;
@@ -41,7 +41,7 @@ class MessageHandlerRunner {
41
41
  }
42
42
  runMessageHandler(handlerParams, cb) {
43
43
  const { redis } = this.config;
44
- redis_smq_common_1.RedisClient.getNewInstance(redis, (err, client) => {
44
+ (0, redis_smq_common_1.createClientInstance)(redis, (err, client) => {
45
45
  if (err)
46
46
  cb(err);
47
47
  else if (!client)
@@ -5,7 +5,7 @@ import { DequeueMessage } from './dequeue-message';
5
5
  import { ConsumeMessage } from './consume-message';
6
6
  import { Consumer } from '../consumer';
7
7
  import { PowerManager, RedisClient } from 'redis-smq-common';
8
- import { ICallback, ICompatibleLogger, TRedisClientMulti } from 'redis-smq-common/dist/types';
8
+ import { ICallback, ICompatibleLogger, IRedisClientMulti } from 'redis-smq-common/dist/types';
9
9
  export declare class MessageHandler extends EventEmitter {
10
10
  protected id: string;
11
11
  protected consumer: Consumer;
@@ -32,5 +32,5 @@ export declare class MessageHandler extends EventEmitter {
32
32
  getConfig(): IRequiredConfig;
33
33
  isRunning(): boolean;
34
34
  getHandler(): TConsumerMessageHandler;
35
- static cleanUp(config: IRequiredConfig, redisClient: RedisClient, consumerId: string, queue: TQueueParams, pendingMulti: TRedisClientMulti | undefined, cb: ICallback<void>): void;
35
+ static cleanUp(config: IRequiredConfig, redisClient: RedisClient, consumerId: string, queue: TQueueParams, pendingMulti: IRedisClientMulti | undefined, cb: ICallback<void>): void;
36
36
  }
@@ -155,7 +155,7 @@ class MessageHandler extends events_2.EventEmitter {
155
155
  else if (pendingMulti)
156
156
  cb();
157
157
  else
158
- redisClient.execMulti(multi, (err) => cb(err));
158
+ multi.exec((err) => cb(err));
159
159
  });
160
160
  }
161
161
  }
@@ -82,7 +82,7 @@ class MultiplexedMessageHandlerRunner extends message_handler_runner_1.MessageHa
82
82
  redis_smq_common_1.async.waterfall([
83
83
  (cb) => {
84
84
  const { redis } = this.config;
85
- redis_smq_common_1.RedisClient.getNewInstance(redis, (err, client) => {
85
+ (0, redis_smq_common_1.createClientInstance)(redis, (err, client) => {
86
86
  if (err)
87
87
  cb(err);
88
88
  else if (!client)
@@ -1,8 +1,8 @@
1
1
  import { IRequiredConfig, TQueueParams } from '../../../../types';
2
2
  import { RedisClient } from 'redis-smq-common';
3
- import { ICallback, TRedisClientMulti } from 'redis-smq-common/dist/types';
3
+ import { ICallback, IRedisClientMulti } from 'redis-smq-common/dist/types';
4
4
  export declare const processingQueue: {
5
- cleanUpProcessingQueue(config: IRequiredConfig, redisClient: RedisClient, consumerId: string, queue: TQueueParams, multi: TRedisClientMulti, cb: ICallback<void>): void;
6
- setUpProcessingQueue(multi: TRedisClientMulti, queue: TQueueParams, consumerId: string): void;
5
+ cleanUpProcessingQueue(config: IRequiredConfig, redisClient: RedisClient, consumerId: string, queue: TQueueParams, multi: IRedisClientMulti, cb: ICallback<void>): void;
6
+ setUpProcessingQueue(multi: IRedisClientMulti, queue: TQueueParams, consumerId: string): void;
7
7
  getQueueProcessingQueues(redisClient: RedisClient, queue: TQueueParams, cb: ICallback<Record<string, string>>): void;
8
8
  };
@@ -1,8 +1,8 @@
1
1
  import { TConsumerInfo, TQueueParams } from '../../../types';
2
2
  import { RedisClient } from 'redis-smq-common';
3
- import { ICallback, TRedisClientMulti } from 'redis-smq-common/dist/types';
3
+ import { ICallback, IRedisClientMulti } from 'redis-smq-common/dist/types';
4
4
  export declare const consumerQueues: {
5
- removeConsumer(multi: TRedisClientMulti, queue: TQueueParams, consumerId: string): void;
5
+ removeConsumer(multi: IRedisClientMulti, queue: TQueueParams, consumerId: string): void;
6
6
  getQueueConsumers(client: RedisClient, queue: TQueueParams, transform: boolean, cb: ICallback<Record<string, TConsumerInfo | string>>): void;
7
7
  getQueueConsumerIds(client: RedisClient, queue: TQueueParams, cb: ICallback<string[]>): void;
8
8
  countQueueConsumers(client: RedisClient, queue: TQueueParams, cb: ICallback<number>): void;
@@ -20,7 +20,7 @@ class Consumer extends base_1.Base {
20
20
  this.heartbeat = null;
21
21
  this.workerRunner = null;
22
22
  this.setUpHeartbeat = (cb) => {
23
- redis_smq_common_1.RedisClient.getNewInstance(this.config.redis, (err, redisClient) => {
23
+ (0, redis_smq_common_1.createClientInstance)(this.config.redis, (err, redisClient) => {
24
24
  if (err)
25
25
  cb(err);
26
26
  else if (!redisClient)
@@ -1,4 +1,4 @@
1
1
  import { IRequiredConfig } from '../../../types';
2
- import { ICallback, TRedisClientMulti } from 'redis-smq-common/dist/types';
2
+ import { ICallback, IRedisClientMulti } from 'redis-smq-common/dist/types';
3
3
  import { RedisClient } from 'redis-smq-common';
4
- export declare function handleOfflineConsumer(config: IRequiredConfig, multi: TRedisClientMulti, redisClient: RedisClient, consumerId: string, cb: ICallback<void>): void;
4
+ export declare function handleOfflineConsumer(config: IRequiredConfig, multi: IRedisClientMulti, redisClient: RedisClient, consumerId: string, cb: ICallback<void>): void;
@@ -20,7 +20,7 @@ class MessageManager {
20
20
  }
21
21
  static createInstance(config, cb) {
22
22
  const cfg = (0, configuration_1.getConfiguration)(config);
23
- redis_smq_common_1.RedisClient.getNewInstance(cfg.redis, (err, client) => {
23
+ (0, redis_smq_common_1.createClientInstance)(cfg.redis, (err, client) => {
24
24
  if (err)
25
25
  cb(err);
26
26
  else if (!client)
@@ -12,7 +12,7 @@ class SortedSet extends abstract_message_storage_1.AbstractMessageStorage {
12
12
  const multi = this.redisClient.multi();
13
13
  multi.hdel(keyMessages, messageId);
14
14
  multi.zrem(keyMessagesWeight, messageId);
15
- this.redisClient.execMulti(multi, (err) => cb(err));
15
+ multi.exec((err) => cb(err));
16
16
  }
17
17
  fetchMessages(key, skip, take, cb) {
18
18
  this.validatePaginationParams(skip, take);
@@ -73,7 +73,7 @@ class SortedSet extends abstract_message_storage_1.AbstractMessageStorage {
73
73
  const multi = this.redisClient.multi();
74
74
  multi.del(keyMessages);
75
75
  multi.del(keyMessagesWeight);
76
- this.redisClient.execMulti(multi, (err) => cb(err));
76
+ multi.exec((err) => cb(err));
77
77
  }
78
78
  getMessageById(key, id, cb) {
79
79
  const { keyMessages } = key;
@@ -1,4 +1,4 @@
1
1
  import { RedisClient } from 'redis-smq-common';
2
- import { ICallback, TRedisClientMulti } from 'redis-smq-common/dist/types';
2
+ import { ICallback, IRedisClientMulti } from 'redis-smq-common/dist/types';
3
3
  import { IRequiredConfig, TQueueParams } from '../../../types';
4
- export declare function initDeleteQueueTransaction(config: IRequiredConfig, redisClient: RedisClient, queueParams: TQueueParams, multi: TRedisClientMulti | undefined, cb: ICallback<TRedisClientMulti>): void;
4
+ export declare function initDeleteQueueTransaction(config: IRequiredConfig, redisClient: RedisClient, queueParams: TQueueParams, multi: IRedisClientMulti | undefined, cb: ICallback<IRedisClientMulti>): void;
@@ -81,9 +81,9 @@ function initDeleteQueueTransaction(config, redisClient, queueParams, multi, cb)
81
81
  const pQueues = processingQueues !== null && processingQueues !== void 0 ? processingQueues : [];
82
82
  if (pQueues.length) {
83
83
  keys.push(...pQueues);
84
- tx.srem(keyProcessingQueues, ...pQueues);
84
+ tx.srem(keyProcessingQueues, pQueues);
85
85
  }
86
- tx.del(...keys);
86
+ tx.del(keys);
87
87
  cb(null, tx);
88
88
  }
89
89
  });
@@ -65,7 +65,7 @@ class Namespace {
65
65
  if (err)
66
66
  cb(err);
67
67
  else
68
- this.redisClient.execMulti(multi, (err) => cb(err));
68
+ multi.exec((err) => cb(err));
69
69
  });
70
70
  }
71
71
  });
@@ -21,7 +21,7 @@ class QueueManager {
21
21
  static createInstance(config, cb) {
22
22
  const cfg = (0, configuration_1.getConfiguration)(config);
23
23
  const redis = cfg.redis;
24
- redis_smq_common_1.RedisClient.getNewInstance(redis, (err, client) => {
24
+ (0, redis_smq_common_1.createClientInstance)(redis, (err, client) => {
25
25
  if (err)
26
26
  cb(err);
27
27
  else if (!client)
@@ -8,7 +8,7 @@ export declare class QueueRateLimit {
8
8
  constructor(config: IRequiredConfig, redisClient: RedisClient, logger: ICompatibleLogger);
9
9
  clear(queue: string | TQueueParams, cb: ICallback<void>): void;
10
10
  set(queue: string | TQueueParams, rateLimit: TQueueRateLimit, cb: ICallback<void>): void;
11
- get(queue: string | TQueueParams, cb: ICallback<TQueueRateLimit>): void;
11
+ get(queue: string | TQueueParams, cb: ICallback<TQueueRateLimit | null>): void;
12
12
  static hasExceeded(redisClient: RedisClient, queue: TQueueParams, rateLimit: TQueueRateLimit, cb: ICallback<boolean>): void;
13
- static get(config: IRequiredConfig, redisClient: RedisClient, queue: string | TQueueParams, cb: ICallback<TQueueRateLimit>): void;
13
+ static get(config: IRequiredConfig, redisClient: RedisClient, queue: string | TQueueParams, cb: ICallback<TQueueRateLimit | null>): void;
14
14
  }
@@ -17,7 +17,7 @@ class QueueRateLimit {
17
17
  const multi = this.redisClient.multi();
18
18
  multi.hdel(keyQueueSettings, keyQueueSettingsRateLimit);
19
19
  multi.del(keyQueueRateLimitCounter);
20
- this.redisClient.execMulti(multi, (err) => cb(err));
20
+ multi.exec((err) => cb(err));
21
21
  }
22
22
  set(queue, rateLimit, cb) {
23
23
  const queueParams = queue_1.Queue.getParams(this.config, queue);
@@ -49,7 +49,7 @@ class Queue {
49
49
  else if (!multi)
50
50
  cb(new redis_smq_common_1.errors.EmptyCallbackReplyError());
51
51
  else
52
- this.redisClient.execMulti(multi, (err) => cb(err));
52
+ multi.exec((err) => cb(err));
53
53
  });
54
54
  }
55
55
  static getParams(config, queue) {
@@ -29,7 +29,7 @@ class DelayWorker extends redis_smq_common_1.Worker {
29
29
  if (err)
30
30
  cb(err);
31
31
  else
32
- this.redisClient.execMulti(multi, (err) => cb(err));
32
+ multi.exec((err) => cb(err));
33
33
  });
34
34
  }
35
35
  else
@@ -37,7 +37,7 @@ class RequeueWorker extends redis_smq_common_1.Worker {
37
37
  if (err)
38
38
  cb(err);
39
39
  else
40
- this.redisClient.execMulti(multi, (err) => cb(err));
40
+ multi.exec((err) => cb(err));
41
41
  });
42
42
  }
43
43
  else
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "redis-smq",
3
- "version": "7.0.0-rc.3",
3
+ "version": "7.0.0-rc.6",
4
4
  "description": "A simple high-performance Redis message queue for Node.js.",
5
5
  "author": "Weyoss <weyoss@protonmail.com>",
6
6
  "license": "MIT",
@@ -36,7 +36,7 @@
36
36
  "bluebird": "3.7.2",
37
37
  "cron-parser": "3.5.0",
38
38
  "lodash": "4.17.21",
39
- "redis-smq-common": "1.0.0-rc.3",
39
+ "redis-smq-common": "1.0.0-rc.11",
40
40
  "uuid": "8.3.2"
41
41
  },
42
42
  "devDependencies": {
@@ -91,6 +91,6 @@
91
91
  },
92
92
  "engineStrict": true,
93
93
  "engines": {
94
- "node": "12 || ^14 || ^16"
94
+ "node": ">=14"
95
95
  }
96
96
  }