redis-smq 6.4.1 → 6.4.2

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 (44) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/src/monitor-server/controllers/api/consumers/consumer/time-series/get-consumer-acknowledged/get-consumer-acknowledged.handler.js +3 -3
  3. package/dist/src/monitor-server/controllers/api/consumers/consumer/time-series/get-consumer-dead-lettered/get-consumer-dead-lettered.handler.js +3 -3
  4. package/dist/src/monitor-server/controllers/api/main/scheduled-messages/delete-scheduled-message/delete-scheduled-message.handler.js +3 -3
  5. package/dist/src/monitor-server/controllers/api/main/scheduled-messages/get-scheduled-messages/get-scheduled-messages.handler.js +3 -3
  6. package/dist/src/monitor-server/controllers/api/main/scheduled-messages/purge-scheduled-messages/purge-scheduled-messages.handler.js +3 -3
  7. package/dist/src/monitor-server/controllers/api/main/time-series/get-acknowledged/get-acknowledged.handler.js +3 -3
  8. package/dist/src/monitor-server/controllers/api/main/time-series/get-dead-lettered/get-dead-lettered.handler.js +3 -3
  9. package/dist/src/monitor-server/controllers/api/main/time-series/get-published-time-series/get-published.handler.js +3 -3
  10. package/dist/src/monitor-server/controllers/api/namespaces/delete-namespace/delete-namespace.handler.js +3 -3
  11. package/dist/src/monitor-server/controllers/api/namespaces/get-namespace-queues/get-namespace-queues.handler.js +3 -3
  12. package/dist/src/monitor-server/controllers/api/namespaces/get-namespaces/get-namespaces.handler.js +3 -3
  13. package/dist/src/monitor-server/controllers/api/namespaces/queue/acknowledged-messages/delete-acknowledged-message/delete-acknowledged-message.handler.js +3 -3
  14. package/dist/src/monitor-server/controllers/api/namespaces/queue/acknowledged-messages/get-acknowledged-messages/get-acknowledged-messages.handler.js +3 -3
  15. package/dist/src/monitor-server/controllers/api/namespaces/queue/acknowledged-messages/purge-acknowledged-messages/purge-acknowledged-messages.handler.js +3 -3
  16. package/dist/src/monitor-server/controllers/api/namespaces/queue/acknowledged-messages/requeue-acknowledged-message/requeue-acknowledged-message.handler.js +3 -3
  17. package/dist/src/monitor-server/controllers/api/namespaces/queue/dead-lettered-messages/delete-dead-lettered-message/delete-dead-lettered-message.handler.js +3 -3
  18. package/dist/src/monitor-server/controllers/api/namespaces/queue/dead-lettered-messages/get-dead-lettered-messages/get-dead-lettered-messages.handler.js +3 -3
  19. package/dist/src/monitor-server/controllers/api/namespaces/queue/dead-lettered-messages/purge-dead-lettered-messages/purge-dead-lettered-messages.handler.js +3 -3
  20. package/dist/src/monitor-server/controllers/api/namespaces/queue/dead-lettered-messages/requeue-dead-lettered-message/requeue-dead-lettered-message.handler.js +3 -3
  21. package/dist/src/monitor-server/controllers/api/namespaces/queue/delete-queue/delete-queue.handler.js +3 -3
  22. package/dist/src/monitor-server/controllers/api/namespaces/queue/pending-messages/delete-pending-message/delete-pending-message.handler.js +3 -3
  23. package/dist/src/monitor-server/controllers/api/namespaces/queue/pending-messages/get-pending-messages/get-pending-messages.handler.js +3 -3
  24. package/dist/src/monitor-server/controllers/api/namespaces/queue/pending-messages/purge-pending-messages/purge-pending-messages.handler.js +3 -3
  25. package/dist/src/monitor-server/controllers/api/namespaces/queue/pending-messages-with-priority/delete-pending-message-with-priority/delete-pending-message-with-priority.handler.js +3 -3
  26. package/dist/src/monitor-server/controllers/api/namespaces/queue/pending-messages-with-priority/get-pending-messages-with-priority/get-pending-messages-with-priority.handler.js +3 -3
  27. package/dist/src/monitor-server/controllers/api/namespaces/queue/pending-messages-with-priority/purge-pending-messages-with-priority/purge-pending-messages-with-priority.handler.js +3 -3
  28. package/dist/src/monitor-server/controllers/api/namespaces/queue/rate-limiting/clear-rate-limit/clear-rate-limit.handler.js +3 -3
  29. package/dist/src/monitor-server/controllers/api/namespaces/queue/rate-limiting/get-rate-limit/get-rate-limit.handler.js +3 -3
  30. package/dist/src/monitor-server/controllers/api/namespaces/queue/rate-limiting/set-rate-limit/set-rate-limit.handler.js +3 -3
  31. package/dist/src/monitor-server/controllers/api/namespaces/queue/time-series/get-queue-acknowledged/get-queue-acknowledged.handler.js +3 -3
  32. package/dist/src/monitor-server/controllers/api/namespaces/queue/time-series/get-queue-dead-lettered/get-queue-dead-lettered.handler.js +3 -3
  33. package/dist/src/monitor-server/controllers/api/namespaces/queue/time-series/get-queue-published/get-queue-published.handler.js +3 -3
  34. package/dist/src/monitor-server/controllers/api/queues/get-queues/get-queues.handler.js +3 -3
  35. package/dist/src/monitor-server/index.js +1 -1
  36. package/dist/src/monitor-server/services/index.d.ts +7 -8
  37. package/dist/src/monitor-server/services/index.js +59 -43
  38. package/dist/src/monitor-server/types/common.d.ts +0 -2
  39. package/dist/src/system/app/consumer/consumer.d.ts +6 -6
  40. package/dist/src/system/common/lock-manager/lock-manager.d.ts +15 -9
  41. package/dist/src/system/common/lock-manager/lock-manager.js +59 -60
  42. package/dist/src/system/common/worker/worker-runner/worker-runner.js +1 -1
  43. package/dist/src/system/common/worker/worker.d.ts +1 -1
  44. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 6.4.2 (2022-04-23)
4
+
5
+ * Test expired locks (367660e)
6
+ * Do not throw an exception and try to acquire again an expired lock (b7f7d36)
7
+ * Bump up redis-smq-monitor to v6.5.6 (c31cd2e)
8
+ * Fix NPM security vulnerabilities (3900ddf)
9
+ * Clean up monitor-server services (954d856)
10
+
3
11
  ## 6.4.1 (2022-03-22)
4
12
 
5
13
  * Fix fsevents not accessible from jest-haste-map (482cb11)
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetConsumerAcknowledgedHandler = void 0;
13
- const GetConsumerAcknowledgedHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const GetConsumerAcknowledgedHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { consumerTimeSeriesService } = app.context.services;
16
- return consumerTimeSeriesService.acknowledged(ctx.state.dto);
16
+ return (0, services_1.consumerTimeSeriesServiceInstance)().acknowledged(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetConsumerAcknowledgedHandler = GetConsumerAcknowledgedHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetConsumerDeadLetteredHandler = void 0;
13
- const GetConsumerDeadLetteredHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const GetConsumerDeadLetteredHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { consumerTimeSeriesService } = app.context.services;
16
- return consumerTimeSeriesService.deadLettered(ctx.state.dto);
16
+ return (0, services_1.consumerTimeSeriesServiceInstance)().deadLettered(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetConsumerDeadLetteredHandler = GetConsumerDeadLetteredHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DeleteScheduledMessageHandler = void 0;
13
- const DeleteScheduledMessageHandler = (app) => {
13
+ const services_1 = require("../../../../../services");
14
+ const DeleteScheduledMessageHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.deleteScheduledMessage(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().deleteScheduledMessage(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.DeleteScheduledMessageHandler = DeleteScheduledMessageHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetScheduledMessagesHandler = void 0;
13
- const GetScheduledMessagesHandler = (app) => {
13
+ const services_1 = require("../../../../../services");
14
+ const GetScheduledMessagesHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.getScheduledMessages(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().getScheduledMessages(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetScheduledMessagesHandler = GetScheduledMessagesHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.PurgeScheduledMessagesHandler = void 0;
13
- const PurgeScheduledMessagesHandler = (app) => {
13
+ const services_1 = require("../../../../../services");
14
+ const PurgeScheduledMessagesHandler = () => {
14
15
  return () => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.purgeScheduledMessages();
16
+ return (0, services_1.messagesServiceInstance)().purgeScheduledMessages();
17
17
  });
18
18
  };
19
19
  exports.PurgeScheduledMessagesHandler = PurgeScheduledMessagesHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetAcknowledgedHandler = void 0;
13
- const GetAcknowledgedHandler = (app) => {
13
+ const services_1 = require("../../../../../services");
14
+ const GetAcknowledgedHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { globalTimeSeriesService } = app.context.services;
16
- return globalTimeSeriesService.acknowledged(ctx.state.dto);
16
+ return (0, services_1.globalTimeSeriesServiceInstance)().acknowledged(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetAcknowledgedHandler = GetAcknowledgedHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetDeadLetteredHandler = void 0;
13
- const GetDeadLetteredHandler = (app) => {
13
+ const services_1 = require("../../../../../services");
14
+ const GetDeadLetteredHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { globalTimeSeriesService } = app.context.services;
16
- return globalTimeSeriesService.deadLettered(ctx.state.dto);
16
+ return (0, services_1.globalTimeSeriesServiceInstance)().deadLettered(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetDeadLetteredHandler = GetDeadLetteredHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetPublishedHandler = void 0;
13
- const GetPublishedHandler = (app) => {
13
+ const services_1 = require("../../../../../services");
14
+ const GetPublishedHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { globalTimeSeriesService } = app.context.services;
16
- return globalTimeSeriesService.published(ctx.state.dto);
16
+ return (0, services_1.globalTimeSeriesServiceInstance)().published(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetPublishedHandler = GetPublishedHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DeleteNamespaceHandler = void 0;
13
- const DeleteNamespaceHandler = (app) => {
13
+ const services_1 = require("../../../../services");
14
+ const DeleteNamespaceHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { queuesService } = app.context.services;
16
- return queuesService.deleteNamespace(ctx.state.dto);
16
+ return (0, services_1.queuesServiceInstance)().deleteNamespace(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.DeleteNamespaceHandler = DeleteNamespaceHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetNamespaceQueuesHandler = void 0;
13
- const GetNamespaceQueuesHandler = (app) => {
13
+ const services_1 = require("../../../../services");
14
+ const GetNamespaceQueuesHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { queuesService } = app.context.services;
16
- return queuesService.getNamespaceQueues(ctx.state.dto);
16
+ return (0, services_1.queuesServiceInstance)().getNamespaceQueues(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetNamespaceQueuesHandler = GetNamespaceQueuesHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetNamespacesHandler = void 0;
13
- const GetNamespacesHandler = (app) => {
13
+ const services_1 = require("../../../../services");
14
+ const GetNamespacesHandler = () => {
14
15
  return () => __awaiter(void 0, void 0, void 0, function* () {
15
- const { queuesService } = app.context.services;
16
- return queuesService.getNamespaces();
16
+ return (0, services_1.queuesServiceInstance)().getNamespaces();
17
17
  });
18
18
  };
19
19
  exports.GetNamespacesHandler = GetNamespacesHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DeleteAcknowledgedMessageHandler = void 0;
13
- const DeleteAcknowledgedMessageHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const DeleteAcknowledgedMessageHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.deleteAcknowledgedMessage(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().deleteAcknowledgedMessage(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.DeleteAcknowledgedMessageHandler = DeleteAcknowledgedMessageHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetAcknowledgedMessagesHandler = void 0;
13
- const GetAcknowledgedMessagesHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const GetAcknowledgedMessagesHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.getAcknowledgedMessages(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().getAcknowledgedMessages(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetAcknowledgedMessagesHandler = GetAcknowledgedMessagesHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.PurgeAcknowledgedMessagesHandler = void 0;
13
- const PurgeAcknowledgedMessagesHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const PurgeAcknowledgedMessagesHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.purgeAcknowledgedMessages(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().purgeAcknowledgedMessages(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.PurgeAcknowledgedMessagesHandler = PurgeAcknowledgedMessagesHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.RequeueAcknowledgedMessageHandler = void 0;
13
- const RequeueAcknowledgedMessageHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const RequeueAcknowledgedMessageHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- yield messagesService.requeueAcknowledgedMessage(ctx.state.dto);
16
+ yield (0, services_1.messagesServiceInstance)().requeueAcknowledgedMessage(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.RequeueAcknowledgedMessageHandler = RequeueAcknowledgedMessageHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DeleteDeadLetteredMessageHandler = void 0;
13
- const DeleteDeadLetteredMessageHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const DeleteDeadLetteredMessageHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.deleteDeadLetteredMessage(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().deleteDeadLetteredMessage(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.DeleteDeadLetteredMessageHandler = DeleteDeadLetteredMessageHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetDeadLetteredMessagesHandler = void 0;
13
- const GetDeadLetteredMessagesHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const GetDeadLetteredMessagesHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.getDeadLetteredMessages(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().getDeadLetteredMessages(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetDeadLetteredMessagesHandler = GetDeadLetteredMessagesHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.PurgeDeadLetteredMessagesHandler = void 0;
13
- const PurgeDeadLetteredMessagesHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const PurgeDeadLetteredMessagesHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.purgeDeadLetteredMessages(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().purgeDeadLetteredMessages(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.PurgeDeadLetteredMessagesHandler = PurgeDeadLetteredMessagesHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.RequeueDeadLetteredMessageHandler = void 0;
13
- const RequeueDeadLetteredMessageHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const RequeueDeadLetteredMessageHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- yield messagesService.requeueDeadLetteredMessage(ctx.state.dto);
16
+ yield (0, services_1.messagesServiceInstance)().requeueDeadLetteredMessage(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.RequeueDeadLetteredMessageHandler = RequeueDeadLetteredMessageHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DeleteQueueHandler = void 0;
13
- const DeleteQueueHandler = (app) => {
13
+ const services_1 = require("../../../../../services");
14
+ const DeleteQueueHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { queuesService } = app.context.services;
16
- return queuesService.deleteQueue(ctx.state.dto);
16
+ return (0, services_1.queuesServiceInstance)().deleteQueue(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.DeleteQueueHandler = DeleteQueueHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DeletePendingMessageHandler = void 0;
13
- const DeletePendingMessageHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const DeletePendingMessageHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.deletePendingMessage(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().deletePendingMessage(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.DeletePendingMessageHandler = DeletePendingMessageHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetPendingMessagesHandler = void 0;
13
- const GetPendingMessagesHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const GetPendingMessagesHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.getPendingMessages(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().getPendingMessages(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetPendingMessagesHandler = GetPendingMessagesHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.PurgePendingMessagesHandler = void 0;
13
- const PurgePendingMessagesHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const PurgePendingMessagesHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.purgePendingMessages(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().purgePendingMessages(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.PurgePendingMessagesHandler = PurgePendingMessagesHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DeletePendingMessageWithPriorityHandler = void 0;
13
- const DeletePendingMessageWithPriorityHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const DeletePendingMessageWithPriorityHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.deletePendingMessageWithPriority(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().deletePendingMessageWithPriority(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.DeletePendingMessageWithPriorityHandler = DeletePendingMessageWithPriorityHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetPendingMessagesWithPriorityHandler = void 0;
13
- const GetPendingMessagesWithPriorityHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const GetPendingMessagesWithPriorityHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.getPendingMessagesWithPriority(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().getPendingMessagesWithPriority(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetPendingMessagesWithPriorityHandler = GetPendingMessagesWithPriorityHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.PurgePendingMessagesWithPriorityHandler = void 0;
13
- const PurgePendingMessagesWithPriorityHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const PurgePendingMessagesWithPriorityHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { messagesService } = app.context.services;
16
- return messagesService.purgePendingMessagesWithPriority(ctx.state.dto);
16
+ return (0, services_1.messagesServiceInstance)().purgePendingMessagesWithPriority(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.PurgePendingMessagesWithPriorityHandler = PurgePendingMessagesWithPriorityHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ClearRateLimitHandler = void 0;
13
- const ClearRateLimitHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const ClearRateLimitHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { queuesService } = app.context.services;
16
- return queuesService.clearQueueRateLimit(ctx.state.dto);
16
+ return (0, services_1.queuesServiceInstance)().clearQueueRateLimit(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.ClearRateLimitHandler = ClearRateLimitHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetRateLimitHandler = void 0;
13
- const GetRateLimitHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const GetRateLimitHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { queuesService } = app.context.services;
16
- return queuesService.getQueueRateLimit(ctx.state.dto);
16
+ return (0, services_1.queuesServiceInstance)().getQueueRateLimit(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetRateLimitHandler = GetRateLimitHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.SetRateLimitHandler = void 0;
13
- const SetRateLimitHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const SetRateLimitHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { queuesService } = app.context.services;
16
- return queuesService.setQueueRateLimit(ctx.state.dto);
16
+ return (0, services_1.queuesServiceInstance)().setQueueRateLimit(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.SetRateLimitHandler = SetRateLimitHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetQueueAcknowledgedHandler = void 0;
13
- const GetQueueAcknowledgedHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const GetQueueAcknowledgedHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { queueTimeSeriesService } = app.context.services;
16
- return queueTimeSeriesService.acknowledged(ctx.state.dto);
16
+ return (0, services_1.queueTimeSeriesServiceInstance)().acknowledged(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetQueueAcknowledgedHandler = GetQueueAcknowledgedHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetQueueDeadLetteredHandler = void 0;
13
- const GetQueueDeadLetteredHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const GetQueueDeadLetteredHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { queueTimeSeriesService } = app.context.services;
16
- return queueTimeSeriesService.deadLettered(ctx.state.dto);
16
+ return (0, services_1.queueTimeSeriesServiceInstance)().deadLettered(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetQueueDeadLetteredHandler = GetQueueDeadLetteredHandler;
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetQueuePublishedHandler = void 0;
13
- const GetQueuePublishedHandler = (app) => {
13
+ const services_1 = require("../../../../../../services");
14
+ const GetQueuePublishedHandler = () => {
14
15
  return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
- const { queueTimeSeriesService } = app.context.services;
16
- return queueTimeSeriesService.published(ctx.state.dto);
16
+ return (0, services_1.queueTimeSeriesServiceInstance)().published(ctx.state.dto);
17
17
  });
18
18
  };
19
19
  exports.GetQueuePublishedHandler = GetQueuePublishedHandler;
@@ -10,9 +10,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GetQueuesHandler = void 0;
13
- const GetQueuesHandler = (app) => () => __awaiter(void 0, void 0, void 0, function* () {
14
- const { queuesService } = app.context.services;
15
- return queuesService.getQueues();
13
+ const services_1 = require("../../../../services");
14
+ const GetQueuesHandler = () => () => __awaiter(void 0, void 0, void 0, function* () {
15
+ return (0, services_1.queuesServiceInstance)().getQueues();
16
16
  });
17
17
  exports.GetQueuesHandler = GetQueuesHandler;
18
18
  //# sourceMappingURL=get-queues.handler.js.map
@@ -82,7 +82,7 @@ class MonitorServer {
82
82
  app.context.config = this.config;
83
83
  app.context.logger = this.logger;
84
84
  app.context.redis = this.redisClient;
85
- app.context.services = (0, services_1.Services)(app);
85
+ (0, services_1.initServices)(this.redisClient);
86
86
  app.use(cors({
87
87
  origin: '*',
88
88
  }));
@@ -1,13 +1,12 @@
1
1
  import { MessagesService } from './messages.service';
2
- import { TApplication } from '../types/common';
3
2
  import { QueuesService } from './queues.service';
4
3
  import { ConsumerTimeSeriesService } from './consumer-time-series.service';
5
4
  import { QueueTimeSeriesService } from './queue-time-series.service';
6
5
  import { GlobalTimeSeriesService } from './global-time-series.service';
7
- export declare function Services(app: TApplication): {
8
- readonly messagesService: MessagesService;
9
- readonly queuesService: QueuesService;
10
- readonly consumerTimeSeriesService: ConsumerTimeSeriesService;
11
- readonly queueTimeSeriesService: QueueTimeSeriesService;
12
- readonly globalTimeSeriesService: GlobalTimeSeriesService;
13
- };
6
+ import { RedisClient } from '../../system/common/redis-client/redis-client';
7
+ export declare function initServices(client: RedisClient): void;
8
+ export declare function messagesServiceInstance(): MessagesService;
9
+ export declare function queuesServiceInstance(): QueuesService;
10
+ export declare function consumerTimeSeriesServiceInstance(): ConsumerTimeSeriesService;
11
+ export declare function queueTimeSeriesServiceInstance(): QueueTimeSeriesService;
12
+ export declare function globalTimeSeriesServiceInstance(): GlobalTimeSeriesService;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Services = void 0;
3
+ exports.globalTimeSeriesServiceInstance = exports.queueTimeSeriesServiceInstance = exports.consumerTimeSeriesServiceInstance = exports.queuesServiceInstance = exports.messagesServiceInstance = exports.initServices = void 0;
4
4
  const messages_service_1 = require("./messages.service");
5
5
  const message_manager_1 = require("../../system/app/message-manager/message-manager");
6
6
  const queues_service_1 = require("./queues.service");
@@ -8,47 +8,63 @@ const consumer_time_series_service_1 = require("./consumer-time-series.service")
8
8
  const queue_time_series_service_1 = require("./queue-time-series.service");
9
9
  const global_time_series_service_1 = require("./global-time-series.service");
10
10
  const queue_manager_1 = require("../../queue-manager");
11
- function Services(app) {
12
- const { redis } = app.context;
13
- let messagesService = null;
14
- let queuesService = null;
15
- let consumerTimeSeriesService = null;
16
- let queueTimeSeriesService = null;
17
- let globalTimeSeriesService = null;
18
- return {
19
- get messagesService() {
20
- if (!messagesService) {
21
- const messageManager = new message_manager_1.MessageManager(redis);
22
- messagesService = new messages_service_1.MessagesService(messageManager);
23
- }
24
- return messagesService;
25
- },
26
- get queuesService() {
27
- if (!queuesService) {
28
- const queueManager = new queue_manager_1.QueueManager(redis);
29
- queuesService = new queues_service_1.QueuesService(queueManager);
30
- }
31
- return queuesService;
32
- },
33
- get consumerTimeSeriesService() {
34
- if (!consumerTimeSeriesService) {
35
- consumerTimeSeriesService = new consumer_time_series_service_1.ConsumerTimeSeriesService(redis);
36
- }
37
- return consumerTimeSeriesService;
38
- },
39
- get queueTimeSeriesService() {
40
- if (!queueTimeSeriesService) {
41
- queueTimeSeriesService = new queue_time_series_service_1.QueueTimeSeriesService(redis);
42
- }
43
- return queueTimeSeriesService;
44
- },
45
- get globalTimeSeriesService() {
46
- if (!globalTimeSeriesService) {
47
- globalTimeSeriesService = new global_time_series_service_1.GlobalTimeSeriesService(redis);
48
- }
49
- return globalTimeSeriesService;
50
- },
51
- };
11
+ const panic_error_1 = require("../../system/common/errors/panic.error");
12
+ let redisClient = null;
13
+ let messagesService = null;
14
+ let queuesService = null;
15
+ let consumerTimeSeriesService = null;
16
+ let queueTimeSeriesService = null;
17
+ let globalTimeSeriesService = null;
18
+ function getRedisClient() {
19
+ if (!redisClient) {
20
+ throw new panic_error_1.PanicError(`Redis client instance is required. Please initialize services first.`);
21
+ }
22
+ return redisClient;
52
23
  }
53
- exports.Services = Services;
24
+ function initServices(client) {
25
+ redisClient = client;
26
+ }
27
+ exports.initServices = initServices;
28
+ function messagesServiceInstance() {
29
+ if (!messagesService) {
30
+ const redisClient = getRedisClient();
31
+ const messageManager = new message_manager_1.MessageManager(redisClient);
32
+ messagesService = new messages_service_1.MessagesService(messageManager);
33
+ }
34
+ return messagesService;
35
+ }
36
+ exports.messagesServiceInstance = messagesServiceInstance;
37
+ function queuesServiceInstance() {
38
+ if (!queuesService) {
39
+ const redisClient = getRedisClient();
40
+ const queueManager = new queue_manager_1.QueueManager(redisClient);
41
+ queuesService = new queues_service_1.QueuesService(queueManager);
42
+ }
43
+ return queuesService;
44
+ }
45
+ exports.queuesServiceInstance = queuesServiceInstance;
46
+ function consumerTimeSeriesServiceInstance() {
47
+ if (!consumerTimeSeriesService) {
48
+ const redisClient = getRedisClient();
49
+ consumerTimeSeriesService = new consumer_time_series_service_1.ConsumerTimeSeriesService(redisClient);
50
+ }
51
+ return consumerTimeSeriesService;
52
+ }
53
+ exports.consumerTimeSeriesServiceInstance = consumerTimeSeriesServiceInstance;
54
+ function queueTimeSeriesServiceInstance() {
55
+ if (!queueTimeSeriesService) {
56
+ const redisClient = getRedisClient();
57
+ queueTimeSeriesService = new queue_time_series_service_1.QueueTimeSeriesService(redisClient);
58
+ }
59
+ return queueTimeSeriesService;
60
+ }
61
+ exports.queueTimeSeriesServiceInstance = queueTimeSeriesServiceInstance;
62
+ function globalTimeSeriesServiceInstance() {
63
+ if (!globalTimeSeriesService) {
64
+ const redisClient = getRedisClient();
65
+ globalTimeSeriesService = new global_time_series_service_1.GlobalTimeSeriesService(redisClient);
66
+ }
67
+ return globalTimeSeriesService;
68
+ }
69
+ exports.globalTimeSeriesServiceInstance = globalTimeSeriesServiceInstance;
54
70
  //# sourceMappingURL=index.js.map
@@ -2,7 +2,6 @@
2
2
  import * as Koa from 'koa';
3
3
  import { ICompatibleLogger, IConfig } from '../../../types';
4
4
  import { RedisClient } from '../../system/common/redis-client/redis-client';
5
- import { Services } from '../services';
6
5
  export interface IResponseBodyError {
7
6
  code: number;
8
7
  message: string;
@@ -22,7 +21,6 @@ export interface IContextState<DTO> extends Koa.DefaultState {
22
21
  export interface IContext extends Koa.DefaultContext {
23
22
  config: IConfig;
24
23
  redis: RedisClient;
25
- services: ReturnType<typeof Services>;
26
24
  logger: ICompatibleLogger;
27
25
  }
28
26
  export declare type TApplication = Koa<Koa.DefaultState, IContext>;
@@ -7,12 +7,12 @@ export declare class Consumer extends Base {
7
7
  private heartbeat;
8
8
  private workerRunner;
9
9
  constructor(useMultiplexing?: boolean);
10
- protected setUpHeartbeat: (cb: ICallback<void>) => void;
11
- protected tearDownHeartbeat: (cb: ICallback<void>) => void;
12
- protected setUpConsumerWorkers: (cb: ICallback<void>) => void;
13
- protected tearDownConsumerWorkers: (cb: ICallback<void>) => void;
14
- protected runMessageHandlers: (cb: ICallback<void>) => void;
15
- protected shutdownMessageHandlers: (cb: ICallback<void>) => void;
10
+ private setUpHeartbeat;
11
+ private tearDownHeartbeat;
12
+ private setUpConsumerWorkers;
13
+ private tearDownConsumerWorkers;
14
+ private runMessageHandlers;
15
+ private shutdownMessageHandlers;
16
16
  protected goingUp(): TUnaryFunction<ICallback<void>>[];
17
17
  protected goingDown(): TUnaryFunction<ICallback<void>>[];
18
18
  consume(queue: TQueueParams, usePriorityQueuing: boolean, messageHandler: TConsumerMessageHandler, cb: ICallback<boolean>): void;
@@ -1,20 +1,26 @@
1
1
  /// <reference types="node" />
2
2
  import { ICallback } from '../../../../types';
3
3
  import { RedisClient } from '../redis-client/redis-client';
4
+ declare enum ELockStatus {
5
+ unlocked = 0,
6
+ locking = 1,
7
+ locked = 2,
8
+ unlocking = 3
9
+ }
4
10
  export declare class LockManager {
5
- protected lockKey: string;
6
- protected lockId: string;
7
- protected isLocked: boolean;
11
+ protected readonly lockId: string;
12
+ protected readonly lockKey: string;
13
+ protected readonly retryOnFail: boolean;
14
+ protected readonly ttl: number;
15
+ protected readonly redisClient: RedisClient;
16
+ protected status: ELockStatus;
8
17
  protected timer: NodeJS.Timeout | null;
9
- protected retryOnFail: boolean;
10
- protected ttl: number;
11
- protected redisClient: RedisClient;
12
- protected isRunning: boolean;
13
18
  constructor(redisClient: RedisClient, lockKey: string, ttl: number, retryOnFail?: boolean);
14
- protected lock(cb: ICallback<string>): void;
19
+ protected retry(cb: ICallback<boolean>): void;
20
+ protected lock(cb: ICallback<boolean>): void;
15
21
  protected extend(cb: ICallback<boolean>): void;
16
22
  protected release(cb: ICallback<boolean>): void;
17
23
  acquireLock(cb: ICallback<boolean>): void;
18
24
  releaseLock(cb: ICallback<void>): void;
19
- quit(cb: ICallback<void>): void;
20
25
  }
26
+ export {};
@@ -1,29 +1,57 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LockManager = void 0;
4
- const lock_manager_error_1 = require("./lock-manager.error");
5
4
  const uuid_1 = require("uuid");
6
5
  const lua_scripts_1 = require("../redis-client/lua-scripts");
6
+ const lock_manager_error_1 = require("./lock-manager.error");
7
+ var ELockStatus;
8
+ (function (ELockStatus) {
9
+ ELockStatus[ELockStatus["unlocked"] = 0] = "unlocked";
10
+ ELockStatus[ELockStatus["locking"] = 1] = "locking";
11
+ ELockStatus[ELockStatus["locked"] = 2] = "locked";
12
+ ELockStatus[ELockStatus["unlocking"] = 3] = "unlocking";
13
+ })(ELockStatus || (ELockStatus = {}));
7
14
  class LockManager {
8
15
  constructor(redisClient, lockKey, ttl, retryOnFail = false) {
9
- this.isLocked = false;
16
+ this.status = ELockStatus.unlocked;
10
17
  this.timer = null;
11
- this.isRunning = true;
12
18
  this.lockKey = lockKey;
13
19
  this.ttl = ttl;
14
20
  this.retryOnFail = retryOnFail;
15
21
  this.lockId = (0, uuid_1.v4)();
16
22
  this.redisClient = redisClient;
17
23
  }
24
+ retry(cb) {
25
+ this.timer = setTimeout(() => {
26
+ this.lock(cb);
27
+ }, 1000);
28
+ }
18
29
  lock(cb) {
19
- this.redisClient.set(this.lockKey, this.lockId, 'PX', this.ttl, 'NX', cb);
30
+ if (this.status === ELockStatus.locking) {
31
+ this.redisClient.set(this.lockKey, this.lockId, 'PX', this.ttl, 'NX', (err, reply) => {
32
+ if (err)
33
+ cb(err);
34
+ else if (!reply) {
35
+ if (this.retryOnFail)
36
+ this.retry(cb);
37
+ else
38
+ cb(null, false);
39
+ }
40
+ else
41
+ cb(null, true);
42
+ });
43
+ }
44
+ else
45
+ cb(null, false);
20
46
  }
21
47
  extend(cb) {
22
48
  this.redisClient.runScript(lua_scripts_1.ELuaScriptName.EXTEND_LOCK, [this.lockKey], [this.lockId, this.ttl], (err, reply) => {
23
49
  if (err)
24
50
  cb(err);
51
+ else if (!!reply)
52
+ cb(null, true);
25
53
  else
26
- cb(null, !!reply);
54
+ this.lock(cb);
27
55
  });
28
56
  }
29
57
  release(cb) {
@@ -35,70 +63,41 @@ class LockManager {
35
63
  });
36
64
  }
37
65
  acquireLock(cb) {
38
- if (!this.isRunning) {
39
- cb(new lock_manager_error_1.LockManagerError('Instance is no longer usable after calling quit(). Create a new instance.'));
40
- }
41
- else if (this.isLocked) {
42
- this.extend((err, reply) => {
43
- if (err)
44
- cb(err);
45
- else if (!reply) {
46
- this.isLocked = false;
47
- cb(new lock_manager_error_1.LockManagerError(`Could not extend the acquired lock with ID ${this.lockId}`));
48
- }
49
- else
50
- cb(null, true);
51
- });
66
+ const status = this.status;
67
+ if (status === ELockStatus.unlocking || status === ELockStatus.locking) {
68
+ cb(new lock_manager_error_1.LockManagerError(`Can not acquire lock while a acquireLock() or releaseLock() call is pending`));
52
69
  }
53
70
  else {
54
- this.lock((err, reply) => {
55
- if (err)
56
- cb(err);
57
- else if (!reply) {
58
- if (this.retryOnFail) {
59
- this.timer = setTimeout(() => {
60
- this.acquireLock(cb);
61
- }, 1000);
62
- }
63
- else
64
- cb(null, false);
65
- }
66
- else {
67
- this.isLocked = true;
68
- cb(null, this.isLocked);
69
- }
70
- });
71
+ const done = (err, status) => {
72
+ this.status = status ? ELockStatus.locked : ELockStatus.unlocked;
73
+ cb(err, status);
74
+ };
75
+ this.status = ELockStatus.locking;
76
+ if (status === ELockStatus.locked)
77
+ this.extend(done);
78
+ else
79
+ this.lock(done);
71
80
  }
72
81
  }
73
82
  releaseLock(cb) {
74
- const done = (err) => {
75
- if (err)
76
- cb(err);
77
- else {
78
- this.isLocked = false;
79
- cb();
80
- }
81
- };
82
- if (!this.isRunning) {
83
- cb(new lock_manager_error_1.LockManagerError(`Instance is no longer usable after calling quit(). Create a new instance.`));
84
- }
83
+ const status = this.status;
84
+ if (status === ELockStatus.unlocking)
85
+ cb(new lock_manager_error_1.LockManagerError('releaseLock() has been already called'));
86
+ else if (status === ELockStatus.unlocked)
87
+ cb();
85
88
  else {
89
+ this.status = ELockStatus.unlocking;
86
90
  if (this.timer)
87
91
  clearTimeout(this.timer);
88
- if (!this.isLocked)
89
- done();
90
- else
91
- this.release(done);
92
- }
93
- }
94
- quit(cb) {
95
- if (!this.isRunning)
96
- cb();
97
- else
98
- this.releaseLock((err) => {
99
- this.isRunning = false;
100
- cb(err);
92
+ this.release((err) => {
93
+ if (err)
94
+ cb(err);
95
+ else {
96
+ this.status = ELockStatus.unlocked;
97
+ cb();
98
+ }
101
99
  });
100
+ }
102
101
  }
103
102
  }
104
103
  exports.LockManager = LockManager;
@@ -93,7 +93,7 @@ class WorkerRunner extends events_1.EventEmitter {
93
93
  this.ticker.quit();
94
94
  };
95
95
  this.releaseLock = (cb) => {
96
- this.lockManager.quit(cb);
96
+ this.lockManager.releaseLock(cb);
97
97
  };
98
98
  this.run = () => {
99
99
  this.powerManager.goingUp();
@@ -3,7 +3,7 @@ import { ICallback, TWorkerParameters } from '../../../../types';
3
3
  export declare abstract class Worker<T extends TWorkerParameters = TWorkerParameters> {
4
4
  private readonly ticker;
5
5
  private readonly powerManager;
6
- private managed;
6
+ private readonly managed;
7
7
  protected readonly redisClient: RedisClient;
8
8
  constructor(redisClient: RedisClient, params: T, managed: boolean);
9
9
  private getTicker;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "redis-smq",
3
- "version": "6.4.1",
3
+ "version": "6.4.2",
4
4
  "description": "A simple high-performance Redis message queue for Node.js.",
5
5
  "author": "Weyoss <weyoss@protonmail.com>",
6
6
  "license": "MIT",
@@ -49,7 +49,7 @@
49
49
  "koa-bodyparser": "4.3.0",
50
50
  "lodash": "4.17.21",
51
51
  "redis": "3.1.2",
52
- "redis-smq-monitor": "6.5.5",
52
+ "redis-smq-monitor": "6.5.6",
53
53
  "reflect-metadata": "0.1.13",
54
54
  "socket.io": "4.2.0",
55
55
  "stoppable": "1.1.0",