redis-smq 7.0.0-rc.3 → 7.0.0-rc.4

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 (28) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +8 -7
  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/message-handler-runner.js +1 -1
  11. package/dist/src/lib/consumer/consumer-message-handler/message-handler.d.ts +2 -2
  12. package/dist/src/lib/consumer/consumer-message-handler/message-handler.js +1 -1
  13. package/dist/src/lib/consumer/consumer-message-handler/multiplexed-message-handler/multiplexed-message-handler-runner.js +1 -1
  14. package/dist/src/lib/consumer/consumer-message-handler/processing-queue.d.ts +3 -3
  15. package/dist/src/lib/consumer/consumer-queues.d.ts +2 -2
  16. package/dist/src/lib/consumer/consumer.js +1 -1
  17. package/dist/src/lib/consumer/offline-consumers.d.ts +2 -2
  18. package/dist/src/lib/message-manager/message-manager.js +1 -1
  19. package/dist/src/lib/message-manager/message-storage/sorted-set.js +2 -2
  20. package/dist/src/lib/queue-manager/delete-queue-transaction.d.ts +2 -2
  21. package/dist/src/lib/queue-manager/delete-queue-transaction.js +2 -2
  22. package/dist/src/lib/queue-manager/namespace.js +1 -1
  23. package/dist/src/lib/queue-manager/queue-manager.js +1 -1
  24. package/dist/src/lib/queue-manager/queue-rate-limit.js +1 -1
  25. package/dist/src/lib/queue-manager/queue.js +1 -1
  26. package/dist/src/workers/delay.worker.js +1 -1
  27. package/dist/src/workers/requeue.worker.js +1 -1
  28. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 7.0.0-rc.4 (2022-05-30)
4
+
5
+ * Update README.md (fef27c1)
6
+ * Support node-redis v4 (c7a91b1)
7
+ * Drop support for node.js v12 (0b5a4e9)
8
+ * Fix outdated documentation (d3bf31b)
9
+ * Fix broken link (fd48c86)
10
+
3
11
  ## 7.0.0-rc.3 (2022-05-26)
4
12
 
5
13
  * Update migration/configuration/message/message-manager references (6d53877)
package/README.md CHANGED
@@ -15,7 +15,7 @@
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
 
@@ -30,7 +30,7 @@ RedisSMQ is a Node.js library for queuing messages (aka jobs) and processing the
30
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.
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
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%.
@@ -62,7 +62,7 @@ RedisSMQ is a Node.js library for queuing messages (aka jobs) and processing the
62
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)
65
+ 9. [Logs](https://github.com/weyoss/redis-smq-common/blob/master/docs/logs.md)
66
66
  5. [RedisSMQ Architecture](docs/redis-smq-architecture.md)
67
67
  6. [Performance](#performance)
68
68
  7. [Contributing](#contributing)
@@ -83,8 +83,8 @@ 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
 
@@ -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
  })
@@ -233,7 +234,7 @@ See [Consumer Reference](docs/api/consumer.md) for more details.
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
 
@@ -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();
@@ -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)
@@ -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.4",
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.8",
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
  }