redis-smq 8.0.0-rc.24 → 8.0.0-rc.26

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 (154) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +2 -2
  3. package/dist/cjs/src/common/redis-client/scripts/lua/delete-message.lua +17 -20
  4. package/dist/cjs/src/common/redis-client/scripts/lua/handle-processing-queue.lua +18 -17
  5. package/dist/cjs/src/common/redis-client/scripts/lua/init-consumer-queue.lua +1 -3
  6. package/dist/cjs/src/common/redis-client/scripts/lua/publish-scheduled-message.lua +3 -9
  7. package/dist/cjs/src/common/redis-client/scripts/lua/requeue-message.lua +6 -7
  8. package/dist/cjs/src/common/redis-client/scripts/lua/schedule-message.lua +5 -8
  9. package/dist/cjs/src/common/redis-keys/redis-keys.d.ts +5 -1
  10. package/dist/cjs/src/common/redis-keys/redis-keys.js +20 -28
  11. package/dist/cjs/src/common/types/event.d.ts +3 -3
  12. package/dist/cjs/src/config/messages/store.js +3 -4
  13. package/dist/cjs/src/config/namespace.js +2 -2
  14. package/dist/cjs/src/lib/consumer/consumer/consumer.d.ts +1 -4
  15. package/dist/cjs/src/lib/consumer/consumer/consumer.js +0 -53
  16. package/dist/cjs/src/lib/consumer/consumer-heartbeat/consumer-heartbeat.d.ts +3 -7
  17. package/dist/cjs/src/lib/consumer/consumer-heartbeat/consumer-heartbeat.js +13 -56
  18. package/dist/cjs/src/lib/consumer/message-handler/consume-message/consume-message.d.ts +2 -2
  19. package/dist/cjs/src/lib/consumer/message-handler/consume-message/consume-message.js +12 -12
  20. package/dist/cjs/src/lib/consumer/message-handler/dequeue-message/dequeue-message.d.ts +0 -1
  21. package/dist/cjs/src/lib/consumer/message-handler/dequeue-message/dequeue-message.js +16 -21
  22. package/dist/cjs/src/lib/consumer/message-handler/message-handler/message-handler.d.ts +4 -1
  23. package/dist/cjs/src/lib/consumer/message-handler/message-handler/message-handler.js +44 -2
  24. package/dist/cjs/src/lib/consumer/message-handler/processing-queue/processing-queue.d.ts +10 -0
  25. package/dist/cjs/src/lib/consumer/message-handler/processing-queue/processing-queue.js +150 -0
  26. package/dist/cjs/src/lib/consumer/message-handler/processing-queue/types/index.d.ts +2 -0
  27. package/dist/cjs/src/lib/consumer/message-handler/processing-queue/types/index.js +18 -0
  28. package/dist/cjs/src/lib/consumer/message-handler/processing-queue/types/processing-queue.d.ts +26 -0
  29. package/dist/cjs/src/lib/consumer/message-handler/processing-queue/types/processing-queue.js +25 -0
  30. package/dist/cjs/src/lib/consumer/types/index.d.ts +1 -1
  31. package/dist/cjs/src/lib/consumer/types/index.js +1 -1
  32. package/dist/cjs/src/lib/consumer/types/message-handler.d.ts +5 -2
  33. package/dist/cjs/src/lib/consumer/workers/delay-unacknowledged.worker.d.ts +2 -2
  34. package/dist/cjs/src/lib/consumer/workers/delay-unacknowledged.worker.js +5 -6
  35. package/dist/cjs/src/lib/consumer/workers/publish-scheduled.worker.d.ts +2 -2
  36. package/dist/cjs/src/lib/consumer/workers/publish-scheduled.worker.js +5 -6
  37. package/dist/cjs/src/lib/consumer/workers/requeue-unacknowledged.worker.d.ts +2 -4
  38. package/dist/cjs/src/lib/consumer/workers/requeue-unacknowledged.worker.js +8 -9
  39. package/dist/cjs/src/lib/consumer/workers/watch-consumers.worker.d.ts +2 -2
  40. package/dist/cjs/src/lib/consumer/workers/watch-consumers.worker.js +15 -16
  41. package/dist/cjs/src/lib/consumer/workers/worker.d.ts +4 -3
  42. package/dist/cjs/src/lib/consumer/workers/worker.js +2 -1
  43. package/dist/cjs/src/lib/consumer-groups/_/_delete-consumer-group.js +4 -6
  44. package/dist/cjs/src/lib/consumer-groups/_/_save-consumer-group.js +3 -4
  45. package/dist/cjs/src/lib/event-bus/event-bus-redis-instance.js +2 -2
  46. package/dist/cjs/src/lib/exchange/exchange-direct/_/_get-exchange-direct-transferable.d.ts +1 -1
  47. package/dist/cjs/src/lib/exchange/exchange-direct/_/_validate-exchange-direct-params.d.ts +1 -1
  48. package/dist/cjs/src/lib/exchange/exchange-direct/_/_validate-exchange-direct-params.js +2 -2
  49. package/dist/cjs/src/lib/exchange/exchange-fan-out/_/_get-exchange-fanout-transferable.d.ts +1 -1
  50. package/dist/cjs/src/lib/exchange/exchange-topic/_/_get-exchange-topic-transferable.d.ts +1 -1
  51. package/dist/cjs/src/lib/exchange/exchange-topic/_/_get-topic-exchange-params.d.ts +1 -1
  52. package/dist/cjs/src/lib/exchange/exchange-topic/_/_get-topic-exchange-params.js +3 -3
  53. package/dist/cjs/src/lib/exchange/exchange-topic/_/_validate-exchange-topic-params.d.ts +1 -1
  54. package/dist/cjs/src/lib/exchange/exchange-topic/_/_validate-exchange-topic-params.js +2 -2
  55. package/dist/cjs/src/lib/message/_/_delete-message.js +2 -4
  56. package/dist/cjs/src/lib/message/_/_requeue-message.js +16 -16
  57. package/dist/cjs/src/lib/message/producible-message.js +8 -8
  58. package/dist/cjs/src/lib/producer/_/_schedule-message.js +7 -11
  59. package/dist/cjs/src/lib/producer/producer.js +2 -1
  60. package/dist/cjs/src/lib/queue/_/_delete-queue.js +14 -23
  61. package/dist/cjs/src/lib/queue/_/_parse-queue-extended-params.d.ts +1 -1
  62. package/dist/cjs/src/lib/queue/_/_parse-queue-extended-params.js +2 -2
  63. package/dist/cjs/src/lib/queue/_/_parse-queue-params-and-validate.js +2 -2
  64. package/dist/cjs/src/lib/queue/_/_parse-queue-params.d.ts +1 -1
  65. package/dist/cjs/src/lib/queue/_/_parse-queue-params.js +8 -8
  66. package/dist/cjs/src/lib/queue-messages/_/_validate-queue-extended-params.js +3 -4
  67. package/dist/cjs/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-abstract.js +1 -1
  68. package/dist/cjs/src/lib/queue-messages/queue-messages.js +1 -1
  69. package/dist/cjs/src/lib/queue-messages/queue-pending-messages/queue-pending-messages.js +1 -1
  70. package/dist/esm/src/common/redis-client/scripts/lua/delete-message.lua +17 -20
  71. package/dist/esm/src/common/redis-client/scripts/lua/handle-processing-queue.lua +18 -17
  72. package/dist/esm/src/common/redis-client/scripts/lua/init-consumer-queue.lua +1 -3
  73. package/dist/esm/src/common/redis-client/scripts/lua/publish-scheduled-message.lua +3 -9
  74. package/dist/esm/src/common/redis-client/scripts/lua/requeue-message.lua +6 -7
  75. package/dist/esm/src/common/redis-client/scripts/lua/schedule-message.lua +5 -8
  76. package/dist/esm/src/common/redis-keys/redis-keys.d.ts +5 -1
  77. package/dist/esm/src/common/redis-keys/redis-keys.js +20 -28
  78. package/dist/esm/src/common/types/event.d.ts +3 -3
  79. package/dist/esm/src/config/messages/store.js +1 -2
  80. package/dist/esm/src/config/namespace.js +1 -1
  81. package/dist/esm/src/lib/consumer/consumer/consumer.d.ts +1 -4
  82. package/dist/esm/src/lib/consumer/consumer/consumer.js +1 -50
  83. package/dist/esm/src/lib/consumer/consumer-heartbeat/consumer-heartbeat.d.ts +3 -7
  84. package/dist/esm/src/lib/consumer/consumer-heartbeat/consumer-heartbeat.js +15 -59
  85. package/dist/esm/src/lib/consumer/message-handler/consume-message/consume-message.d.ts +2 -2
  86. package/dist/esm/src/lib/consumer/message-handler/consume-message/consume-message.js +13 -13
  87. package/dist/esm/src/lib/consumer/message-handler/dequeue-message/dequeue-message.d.ts +0 -1
  88. package/dist/esm/src/lib/consumer/message-handler/dequeue-message/dequeue-message.js +16 -22
  89. package/dist/esm/src/lib/consumer/message-handler/message-handler/message-handler.d.ts +4 -1
  90. package/dist/esm/src/lib/consumer/message-handler/message-handler/message-handler.js +42 -4
  91. package/dist/esm/src/lib/consumer/message-handler/processing-queue/processing-queue.d.ts +10 -0
  92. package/dist/esm/src/lib/consumer/message-handler/processing-queue/processing-queue.js +147 -0
  93. package/dist/esm/src/lib/consumer/message-handler/processing-queue/types/index.d.ts +2 -0
  94. package/dist/esm/src/lib/consumer/message-handler/processing-queue/types/index.js +2 -0
  95. package/dist/esm/src/lib/consumer/message-handler/processing-queue/types/processing-queue.d.ts +26 -0
  96. package/dist/esm/src/lib/consumer/message-handler/processing-queue/types/processing-queue.js +22 -0
  97. package/dist/esm/src/lib/consumer/types/index.d.ts +1 -1
  98. package/dist/esm/src/lib/consumer/types/index.js +1 -1
  99. package/dist/esm/src/lib/consumer/types/message-handler.d.ts +5 -2
  100. package/dist/esm/src/lib/consumer/workers/delay-unacknowledged.worker.d.ts +2 -2
  101. package/dist/esm/src/lib/consumer/workers/delay-unacknowledged.worker.js +5 -6
  102. package/dist/esm/src/lib/consumer/workers/publish-scheduled.worker.d.ts +2 -2
  103. package/dist/esm/src/lib/consumer/workers/publish-scheduled.worker.js +5 -6
  104. package/dist/esm/src/lib/consumer/workers/requeue-unacknowledged.worker.d.ts +2 -4
  105. package/dist/esm/src/lib/consumer/workers/requeue-unacknowledged.worker.js +6 -11
  106. package/dist/esm/src/lib/consumer/workers/watch-consumers.worker.d.ts +2 -2
  107. package/dist/esm/src/lib/consumer/workers/watch-consumers.worker.js +16 -17
  108. package/dist/esm/src/lib/consumer/workers/worker.d.ts +4 -3
  109. package/dist/esm/src/lib/consumer/workers/worker.js +3 -1
  110. package/dist/esm/src/lib/consumer-groups/_/_delete-consumer-group.js +1 -3
  111. package/dist/esm/src/lib/consumer-groups/_/_save-consumer-group.js +1 -2
  112. package/dist/esm/src/lib/event-bus/event-bus-redis-instance.js +1 -1
  113. package/dist/esm/src/lib/exchange/exchange-direct/_/_get-exchange-direct-transferable.d.ts +1 -1
  114. package/dist/esm/src/lib/exchange/exchange-direct/_/_validate-exchange-direct-params.d.ts +1 -1
  115. package/dist/esm/src/lib/exchange/exchange-direct/_/_validate-exchange-direct-params.js +1 -1
  116. package/dist/esm/src/lib/exchange/exchange-fan-out/_/_get-exchange-fanout-transferable.d.ts +1 -1
  117. package/dist/esm/src/lib/exchange/exchange-topic/_/_get-exchange-topic-transferable.d.ts +1 -1
  118. package/dist/esm/src/lib/exchange/exchange-topic/_/_get-topic-exchange-params.d.ts +1 -1
  119. package/dist/esm/src/lib/exchange/exchange-topic/_/_get-topic-exchange-params.js +1 -1
  120. package/dist/esm/src/lib/exchange/exchange-topic/_/_validate-exchange-topic-params.d.ts +1 -1
  121. package/dist/esm/src/lib/exchange/exchange-topic/_/_validate-exchange-topic-params.js +1 -1
  122. package/dist/esm/src/lib/message/_/_delete-message.js +2 -4
  123. package/dist/esm/src/lib/message/_/_requeue-message.js +2 -2
  124. package/dist/esm/src/lib/message/producible-message.js +1 -1
  125. package/dist/esm/src/lib/producer/_/_schedule-message.js +3 -7
  126. package/dist/esm/src/lib/producer/producer.js +2 -1
  127. package/dist/esm/src/lib/queue/_/_delete-queue.js +14 -23
  128. package/dist/esm/src/lib/queue/_/_parse-queue-extended-params.d.ts +1 -1
  129. package/dist/esm/src/lib/queue/_/_parse-queue-extended-params.js +1 -1
  130. package/dist/esm/src/lib/queue/_/_parse-queue-params-and-validate.js +1 -1
  131. package/dist/esm/src/lib/queue/_/_parse-queue-params.d.ts +1 -1
  132. package/dist/esm/src/lib/queue/_/_parse-queue-params.js +2 -2
  133. package/dist/esm/src/lib/queue-messages/_/_validate-queue-extended-params.js +1 -2
  134. package/dist/esm/src/lib/queue-messages/queue-messages-paginator/queue-messages-paginator-abstract.js +1 -1
  135. package/dist/esm/src/lib/queue-messages/queue-messages.js +1 -1
  136. package/dist/esm/src/lib/queue-messages/queue-pending-messages/queue-pending-messages.js +1 -1
  137. package/dist/esm/src/lib/queue-rate-limit/queue-rate-limit.js +1 -1
  138. package/package.json +22 -20
  139. package/dist/cjs/src/lib/consumer/consumer-heartbeat/_/_cleanup-offline-consumer.d.ts +0 -3
  140. package/dist/cjs/src/lib/consumer/consumer-heartbeat/_/_cleanup-offline-consumer.js +0 -21
  141. package/dist/cjs/src/lib/consumer/message-handler/processing-queue.d.ts +0 -12
  142. package/dist/cjs/src/lib/consumer/message-handler/processing-queue.js +0 -130
  143. package/dist/cjs/src/lib/consumer/message-handler/retry-message.d.ts +0 -15
  144. package/dist/cjs/src/lib/consumer/message-handler/retry-message.js +0 -42
  145. package/dist/cjs/src/lib/consumer/types/consume-message.d.ts +0 -14
  146. package/dist/cjs/src/lib/consumer/types/consume-message.js +0 -19
  147. package/dist/esm/src/lib/consumer/consumer-heartbeat/_/_cleanup-offline-consumer.d.ts +0 -3
  148. package/dist/esm/src/lib/consumer/consumer-heartbeat/_/_cleanup-offline-consumer.js +0 -17
  149. package/dist/esm/src/lib/consumer/message-handler/processing-queue.d.ts +0 -12
  150. package/dist/esm/src/lib/consumer/message-handler/processing-queue.js +0 -127
  151. package/dist/esm/src/lib/consumer/message-handler/retry-message.d.ts +0 -15
  152. package/dist/esm/src/lib/consumer/message-handler/retry-message.js +0 -38
  153. package/dist/esm/src/lib/consumer/types/consume-message.d.ts +0 -14
  154. package/dist/esm/src/lib/consumer/types/consume-message.js +0 -16
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
 
2
2
 
3
+ ## [8.0.0-rc.25](https://github.com/weyoss/redis-smq/compare/v8.0.0-rc.24...v8.0.0-rc.25) (2024-07-07)
4
+
5
+
6
+ ### Documentation
7
+
8
+ * add a link to redis-smq-rest-api ([a1ab6fc](https://github.com/weyoss/redis-smq/commit/a1ab6fc594b4d32de5f4e4257fbf46c2447f0018))
9
+
10
+
11
+ ### Misc
12
+
13
+ * make redis-smq-common a peer dependency ([3b7dbab](https://github.com/weyoss/redis-smq/commit/3b7dbab7a14fc3b11aa75badc36a396727fb4f3b))
14
+
3
15
  ## [8.0.0-rc.24](https://github.com/weyoss/redis-smq/compare/v8.0.0-rc.23...v8.0.0-rc.24) (2024-05-15)
4
16
 
5
17
 
package/README.md CHANGED
@@ -30,7 +30,7 @@ RedisSMQ is a Node.js library for queuing messages (aka jobs) and processing the
30
30
  * Messages can be [set to expire](docs/api/classes/ProducibleMessage.md#setttl) when not delivered within a given amount of time or to have a [consumption timeout](docs/api/classes/ProducibleMessage.md#setconsumetimeout) while being in process.
31
31
  * Queues may be [rate Limited](docs/queue-rate-limiting.md) to control the rate at which the messages are consumed.
32
32
  * Has a builtin [scheduler](docs/scheduling-messages.md) allowing messages [to be delayed](docs/api/classes/ProducibleMessage.md#setscheduleddelay), [to be delivered for N times](docs/api/classes/ProducibleMessage.md#setscheduledrepeat) with an optional [period between deliveries](docs/api/classes/ProducibleMessage.md#setscheduledrepeatperiod), or simply [to be scheduled using CRON expressions](docs/api/classes/ProducibleMessage.md#setscheduledcron).
33
- * Provides [an HTTP API](https://github.com/weyoss/redis-smq-monitor) to interact with the message queue for external services.
33
+ * Provides [an HTTP interface](https://github.com/weyoss/redis-smq-rest-api) to interact with the message queue using a RESTful API.
34
34
  * RedisSMQ can be managed also from your [web browser](https://github.com/weyoss/redis-smq-monitor-client).
35
35
  * Either [node-redis](https://github.com/redis/node-redis) or [ioredis](https://github.com/luin/ioredis) can be used as a Redis client.
36
36
  * [Highly optimized](https://lgtm.com/projects/g/weyoss/redis-smq/context:javascript), implemented using pure callbacks, with small memory footprint and no memory leaks. See [Callback vs Promise vs Async/Await benchmarks](https://gist.github.com/weyoss/24f9ecbda175d943a48cb7ec38bde821).
@@ -57,7 +57,7 @@ Current RedisSMQ v8 RC status:
57
57
 
58
58
  - [x] RedisSMQ Common Library
59
59
  - [x] RedisSMQ
60
- - [ ] HTTP API (WIP)
60
+ - [x] [RESTful API](https://github.com/weyoss/redis-smq-rest-api)
61
61
  - [ ] Web UI (WIP)
62
62
 
63
63
  If you wish to get the latest updates early feel free to try RedisSMQ v8 RC. Do not hesitate to report any bug or issue if encountered.
@@ -1,9 +1,3 @@
1
- local keyScheduledMessages = KEYS[1]
2
- local keyDelayedMessages = KEYS[2]
3
- local keyRequeueMessages = KEYS[3]
4
-
5
- ---
6
-
7
1
  local EQueuePropertyQueueType = ARGV[1]
8
2
  local EQueuePropertyMessagesCount = ARGV[2]
9
3
  local EQueuePropertyQueueTypePriorityQueue = ARGV[3]
@@ -20,12 +14,14 @@ local EMessagePropertyStatusUnackRequeuing = ARGV[13]
20
14
 
21
15
  ---
22
16
 
17
+ local keyQueueScheduled = ''
18
+ local keyQueueDelayed = ''
19
+ local keyQueueRequeued = ''
23
20
  local keyMessage = ''
24
21
  local keyQueueProperties = ''
25
22
  local keyQueuePending = ''
26
23
  local keyQueueDL = ''
27
24
  local keyQueueAcknowledged = ''
28
- local keyQueueScheduled = ''
29
25
  local keyQueuePriorityPending = ''
30
26
 
31
27
  ---
@@ -34,7 +30,7 @@ local messageId = ''
34
30
 
35
31
  ---
36
32
 
37
- local keyIndexOffset = 3
33
+ local keyIndexOffset = 0
38
34
  local argvIndexOffset = 13
39
35
 
40
36
  ---
@@ -57,12 +53,11 @@ local function deleteMessage()
57
53
  elseif messageStatus == EMessagePropertyStatusDeadLettered then
58
54
  deleted = redis.call("LREM", keyQueueDL, 1, messageId)
59
55
  elseif messageStatus == EMessagePropertyStatusScheduled then
60
- deleted = redis.call("ZREM", keyScheduledMessages, messageId)
61
- redis.call("ZREM", keyQueueScheduled, messageId)
56
+ deleted = redis.call("ZREM", keyQueueScheduled, messageId)
62
57
  elseif messageStatus == EMessagePropertyStatusUnackDelaying then
63
- deleted = redis.call("LREM", keyDelayedMessages, 1, messageId)
58
+ deleted = redis.call("LREM", keyQueueDelayed, 1, messageId)
64
59
  elseif messageStatus == EMessagePropertyStatusUnackRequeuing then
65
- deleted = redis.call("LREM", keyRequeueMessages, 1, messageId)
60
+ deleted = redis.call("LREM", keyQueueRequeued, 1, messageId)
66
61
  elseif messageStatus == EMessagePropertyStatusPending then
67
62
  local queueType = redis.call("HGET", keyQueueProperties, EQueuePropertyQueueType)
68
63
  if queueType ~= false then
@@ -87,14 +82,16 @@ if #ARGV > argvIndexOffset then
87
82
  for index in pairs(ARGV) do
88
83
  if (index > argvIndexOffset) then
89
84
  messageId = ARGV[index]
90
- keyMessage = KEYS[keyIndexOffset + 1]
91
- keyQueueProperties = KEYS[keyIndexOffset + 2]
92
- keyQueuePending = KEYS[keyIndexOffset + 3]
93
- keyQueueDL = KEYS[keyIndexOffset + 4]
94
- keyQueueAcknowledged = KEYS[keyIndexOffset + 5]
95
- keyQueueScheduled = KEYS[keyIndexOffset + 6]
96
- keyQueuePriorityPending = KEYS[keyIndexOffset + 7]
97
- keyIndexOffset = keyIndexOffset + 7
85
+ keyQueueScheduled = KEYS[keyIndexOffset + 1]
86
+ keyQueueDelayed = KEYS[keyIndexOffset + 2]
87
+ keyQueueRequeued = KEYS[keyIndexOffset + 3]
88
+ keyMessage = KEYS[keyIndexOffset + 4]
89
+ keyQueueProperties = KEYS[keyIndexOffset + 5]
90
+ keyQueuePending = KEYS[keyIndexOffset + 6]
91
+ keyQueueDL = KEYS[keyIndexOffset + 7]
92
+ keyQueueAcknowledged = KEYS[keyIndexOffset + 8]
93
+ keyQueuePriorityPending = KEYS[keyIndexOffset + 9]
94
+ keyIndexOffset = keyIndexOffset + 9
98
95
  deleteMessageStatus = deleteMessage()
99
96
  if deleteMessageStatus ~= 'OK' then
100
97
  break
@@ -1,9 +1,3 @@
1
- local keyProcessingQueues = KEYS[1]
2
- local keyDelayedMessages = KEYS[2]
3
- local keyRequeueMessages = KEYS[3]
4
-
5
- ---
6
-
7
1
  local ERetryActionDelay = ARGV[1]
8
2
  local ERetryActionRequeue = ARGV[2]
9
3
  local ERetryActionDeadLetter = ARGV[3]
@@ -16,12 +10,14 @@ local EMessageUnacknowledgedCauseOfflineHandler = ARGV[9]
16
10
 
17
11
  ---
18
12
 
19
- local keyIndexOffset = 3
13
+ local keyIndexOffset = 0
20
14
  local argvIndexOffset = 9
21
15
 
22
16
  ---
23
17
 
24
18
  local keyQueueProcessing = ''
19
+ local keyQueueDelayed = ''
20
+ local keyQueueRequeued = ''
25
21
  local keyQueueDL = ''
26
22
  local keyQueueProcessingQueues = ''
27
23
  local keyQueueConsumers = ''
@@ -47,15 +43,19 @@ local function removeQueueConsumer()
47
43
  if queue ~= '' then
48
44
  redis.call("HDEL", keyQueueConsumers, consumerId)
49
45
  redis.call("SREM", keyConsumerQueues, queue)
46
+ local size = redis.call("SCARD", keyConsumerQueues)
47
+ if size == 0 then
48
+ redis.call("DEL", keyConsumerQueues)
49
+ end
50
50
  end
51
51
  end
52
52
 
53
53
  local function retryMessage()
54
54
  if messageId ~= '' then
55
55
  if retryAction == ERetryActionRequeue then
56
- redis.call("RPOPLPUSH", keyQueueProcessing, keyRequeueMessages)
56
+ redis.call("RPOPLPUSH", keyQueueProcessing, keyQueueRequeued)
57
57
  elseif retryAction == ERetryActionDelay then
58
- redis.call("RPOPLPUSH", keyQueueProcessing, keyDelayedMessages)
58
+ redis.call("RPOPLPUSH", keyQueueProcessing, keyQueueDelayed)
59
59
  else
60
60
  if storeMessages == '1' then
61
61
  redis.call("LREM", keyQueueProcessing, 1, messageId)
@@ -76,7 +76,6 @@ end
76
76
 
77
77
  local function deleteProcessingQueue()
78
78
  if keyQueueProcessing ~= '' then
79
- redis.call("SREM", keyProcessingQueues, keyQueueProcessing)
80
79
  redis.call("HDEL", keyQueueProcessingQueues, keyQueueProcessing)
81
80
  redis.call("DEL", keyQueueProcessing)
82
81
  end
@@ -91,13 +90,15 @@ if #ARGV > argvIndexOffset then
91
90
  if relativeIndex == 3 then
92
91
  queue = ARGV[index]
93
92
  keyQueueProcessing = KEYS[keyIndexOffset + 1]
94
- keyQueueDL = KEYS[keyIndexOffset + 2]
95
- keyQueueProcessingQueues = KEYS[keyIndexOffset + 3]
96
- keyQueueConsumers = KEYS[keyIndexOffset + 4]
97
- keyConsumerQueues = KEYS[keyIndexOffset + 5]
98
- keyQueueProperties = KEYS[keyIndexOffset + 6]
99
- keyMessage = KEYS[keyIndexOffset + 7]
100
- keyIndexOffset = keyIndexOffset + 7
93
+ keyQueueDelayed = KEYS[keyIndexOffset + 2];
94
+ keyQueueRequeued = KEYS[keyIndexOffset + 3];
95
+ keyQueueDL = KEYS[keyIndexOffset + 4]
96
+ keyQueueProcessingQueues = KEYS[keyIndexOffset + 5]
97
+ keyQueueConsumers = KEYS[keyIndexOffset + 6]
98
+ keyConsumerQueues = KEYS[keyIndexOffset + 7]
99
+ keyQueueProperties = KEYS[keyIndexOffset + 8]
100
+ keyMessage = KEYS[keyIndexOffset + 9]
101
+ keyIndexOffset = keyIndexOffset + 9
101
102
  elseif relativeIndex == 4 then
102
103
  consumerId = ARGV[index]
103
104
  elseif relativeIndex == 5 then
@@ -1,8 +1,7 @@
1
1
  local keyQueues = KEYS[1]
2
2
  local keyQueueConsumers = KEYS[2]
3
3
  local keyConsumerQueues = KEYS[3]
4
- local keyProcessingQueues = KEYS[4]
5
- local keyQueueProcessingQueues = KEYS[5]
4
+ local keyQueueProcessingQueues = KEYS[4]
6
5
 
7
6
  ---
8
7
 
@@ -15,7 +14,6 @@ if redis.call("SISMEMBER", keyQueues, queue) == 1 then
15
14
  redis.call("SADD", keyConsumerQueues, queue)
16
15
  redis.call("HSET", keyQueueConsumers, consumerId, consumerInfo)
17
16
  redis.call("HSET", keyQueueProcessingQueues, consumerProcessingQueue, consumerId)
18
- redis.call("SADD", keyProcessingQueues, consumerProcessingQueue)
19
17
  return 1
20
18
  end
21
19
  return 0
@@ -1,7 +1,3 @@
1
- local keyScheduledMessages = KEYS[1]
2
-
3
- ---
4
-
5
1
  local EMessagePropertyStatus = ARGV[1]
6
2
  local EMessagePropertyStatusPending = ARGV[2]
7
3
  local EMessagePropertyState = ARGV[3]
@@ -32,7 +28,7 @@ local scheduledMessageState = ''
32
28
 
33
29
  ---
34
30
 
35
- local keyIndexOffset = 1
31
+ local keyIndexOffset = 0
36
32
  local argvIndexOffset = 9
37
33
 
38
34
  ---
@@ -66,7 +62,6 @@ local function deletedScheduledMessage(updateMessageCount)
66
62
  end
67
63
 
68
64
  local function removeFromScheduled()
69
- redis.call("ZREM", keyScheduledMessages, scheduledMessageId)
70
65
  redis.call("ZREM", keyQueueScheduled, scheduledMessageId)
71
66
  end
72
67
 
@@ -83,7 +78,6 @@ local function updateScheduledMessageProperties(status)
83
78
  end
84
79
 
85
80
  local function scheduleMessage()
86
- redis.call("ZADD", keyScheduledMessages, scheduledMessageNextScheduleTimestamp, scheduledMessageId)
87
81
  redis.call("ZADD", keyQueueScheduled, scheduledMessageNextScheduleTimestamp, scheduledMessageId)
88
82
  end
89
83
 
@@ -121,8 +115,8 @@ if #ARGV > argvIndexOffset then
121
115
  messageId = ARGV[index]
122
116
  keyMessage = KEYS[keyIndexOffset + 1]
123
117
  keyQueuePending = KEYS[keyIndexOffset + 2]
124
- keyQueueProperties = KEYS[keyIndexOffset + 3]
125
- keyQueueMessages = KEYS[keyIndexOffset + 4]
118
+ keyQueueMessages = KEYS[keyIndexOffset + 3]
119
+ keyQueueProperties = KEYS[keyIndexOffset + 4]
126
120
  keyQueuePriorityPending = KEYS[keyIndexOffset + 5]
127
121
  keyQueueScheduled = KEYS[keyIndexOffset + 6]
128
122
  keyScheduledMessage = KEYS[keyIndexOffset + 7]
@@ -1,4 +1,5 @@
1
1
  local keyFromQueue = KEYS[1]
2
+ local keyQueueProperties = KEYS[2]
2
3
 
3
4
  ---
4
5
 
@@ -12,7 +13,6 @@ local EMessagePropertyState = ARGV[7]
12
13
 
13
14
  ---
14
15
 
15
- local keyQueueProperties = ''
16
16
  local keyQueuePriority = ''
17
17
  local keyQueuePending = ''
18
18
  local keyMessage = ''
@@ -23,7 +23,7 @@ local messageState = ''
23
23
 
24
24
  ---
25
25
 
26
- local keyIndexOffset = 1
26
+ local keyIndexOffset = 2
27
27
  local argvIndexOffset = 7
28
28
 
29
29
  ---
@@ -62,11 +62,10 @@ if #ARGV > argvIndexOffset then
62
62
  local idx = index % 3
63
63
  if idx == 2 then
64
64
  messageId = ARGV[index]
65
- keyQueueProperties = KEYS[keyIndexOffset + 1]
66
- keyQueuePriority = KEYS[keyIndexOffset + 2]
67
- keyQueuePending = KEYS[keyIndexOffset + 3]
68
- keyMessage = KEYS[keyIndexOffset + 4]
69
- keyIndexOffset = keyIndexOffset + 4
65
+ keyQueuePriority = KEYS[keyIndexOffset + 1]
66
+ keyQueuePending = KEYS[keyIndexOffset + 2]
67
+ keyMessage = KEYS[keyIndexOffset + 3]
68
+ keyIndexOffset = keyIndexOffset + 3;
70
69
  elseif idx == 0 then
71
70
  messagePriority = ARGV[index]
72
71
  elseif idx == 1 then
@@ -1,7 +1,3 @@
1
- local keyScheduledMessages = KEYS[1]
2
- local keyDelayedMessages = KEYS[2]
3
- ---
4
-
5
1
  local EQueuePropertyQueueType = ARGV[1]
6
2
  local EQueuePropertyMessagesCount = ARGV[2]
7
3
  local EMessagePropertyMessage = ARGV[3]
@@ -16,6 +12,7 @@ local keyQueueMessages = ''
16
12
  local keyQueueProperties = ''
17
13
  local keyMessage = ''
18
14
  local keyQueueScheduled = ''
15
+ local keyQueueDelayed = ''
19
16
 
20
17
  ---
21
18
 
@@ -26,7 +23,7 @@ local messageState = ''
26
23
 
27
24
  ---
28
25
 
29
- local keyIndexOffset = 2
26
+ local keyIndexOffset = 0
30
27
  local argvIndexOffset = 7
31
28
 
32
29
  ---
@@ -71,7 +68,8 @@ if #ARGV > argvIndexOffset then
71
68
  keyQueueProperties = KEYS[keyIndexOffset + 2]
72
69
  keyMessage = KEYS[keyIndexOffset + 3]
73
70
  keyQueueScheduled = KEYS[keyIndexOffset + 4]
74
- keyIndexOffset = keyIndexOffset + 4
71
+ keyQueueDelayed = KEYS[keyIndexOffset + 5]
72
+ keyIndexOffset = keyIndexOffset + 5
75
73
  elseif idx == 1 then
76
74
  message = ARGV[index]
77
75
  elseif idx == 2 then
@@ -81,12 +79,11 @@ if #ARGV > argvIndexOffset then
81
79
  local found = checkQueue()
82
80
  if found == 'OK' then
83
81
  if scheduleFromDelayed == '1' then
84
- redis.call("LREM", keyDelayedMessages, 1, messageId)
82
+ redis.call("LREM", keyQueueDelayed, 1, messageId)
85
83
  updateMessageState()
86
84
  else
87
85
  saveMessage()
88
86
  end
89
- redis.call("ZADD", keyScheduledMessages, scheduleTimestamp, messageId)
90
87
  redis.call("ZADD", keyQueueScheduled, scheduleTimestamp, messageId)
91
88
  else
92
89
  return found
@@ -11,12 +11,15 @@ export declare const redisKeys: {
11
11
  keyQueueProcessingQueues: string;
12
12
  keyQueueAcknowledged: string;
13
13
  keyQueueScheduled: string;
14
+ keyQueueRequeued: string;
15
+ keyQueueDelayed: string;
14
16
  keyQueueConsumers: string;
15
17
  keyQueueRateLimitCounter: string;
16
18
  keyQueueProperties: string;
17
19
  keyQueueMessages: string;
18
20
  keyQueueMessageIds: string;
19
21
  keyQueueConsumerGroups: string;
22
+ keyQueueWorkersLock: string;
20
23
  };
21
24
  getMessageKeys(messageId: string): {
22
25
  keyMessage: string;
@@ -26,11 +29,12 @@ export declare const redisKeys: {
26
29
  };
27
30
  getConsumerKeys(instanceId: string): {
28
31
  keyConsumerQueues: string;
32
+ keyConsumerHeartbeat: string;
29
33
  };
30
34
  getQueueConsumerKeys(queueParams: IQueueParams, instanceId: string): {
31
35
  keyQueueProcessing: string;
32
36
  };
33
- getMainKeys(): Record<"keyQueues" | "keyProcessingQueues" | "keyHeartbeats" | "keyHeartbeatTimestamps" | "keyScheduledMessages" | "keyLockConsumerWorkersRunner" | "keyDelayedMessages" | "keyRequeueMessages" | "keyNamespaces" | "keyFanOutExchanges" | "keyDeletedQueues", string>;
37
+ getMainKeys(): Record<"keyQueues" | "keyNamespaces" | "keyFanOutExchanges", string>;
34
38
  validateNamespace(ns: string): string | RedisKeysInvalidKeyError;
35
39
  validateRedisKey(key: string | null | undefined): string | RedisKeysInvalidKeyError;
36
40
  getKeySegmentSeparator(): string;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.redisKeys = void 0;
4
4
  const index_js_1 = require("./errors/index.js");
5
5
  const keySegmentSeparator = ':';
6
- const nsPrefix = 'redis-smq-rc815';
6
+ const nsPrefix = 'redis-smq-rc826';
7
7
  const globalNamespace = 'global';
8
8
  var ERedisKey;
9
9
  (function (ERedisKey) {
@@ -13,28 +13,24 @@ var ERedisKey;
13
13
  ERedisKey[ERedisKey["KEY_QUEUE_PROCESSING"] = 4] = "KEY_QUEUE_PROCESSING";
14
14
  ERedisKey[ERedisKey["KEY_QUEUE_ACKNOWLEDGED"] = 5] = "KEY_QUEUE_ACKNOWLEDGED";
15
15
  ERedisKey[ERedisKey["KEY_QUEUE_SCHEDULED"] = 6] = "KEY_QUEUE_SCHEDULED";
16
- ERedisKey[ERedisKey["KEY_QUEUE_CONSUMERS"] = 7] = "KEY_QUEUE_CONSUMERS";
17
- ERedisKey[ERedisKey["KEY_QUEUE_PROCESSING_QUEUES"] = 8] = "KEY_QUEUE_PROCESSING_QUEUES";
18
- ERedisKey[ERedisKey["KEY_LOCK_CONSUMER_WORKERS_RUNNER"] = 9] = "KEY_LOCK_CONSUMER_WORKERS_RUNNER";
19
- ERedisKey[ERedisKey["KEY_DELAYED_MESSAGES"] = 10] = "KEY_DELAYED_MESSAGES";
20
- ERedisKey[ERedisKey["KEY_REQUEUE_MESSAGES"] = 11] = "KEY_REQUEUE_MESSAGES";
21
- ERedisKey[ERedisKey["KEY_SCHEDULED_MESSAGES"] = 12] = "KEY_SCHEDULED_MESSAGES";
22
- ERedisKey[ERedisKey["KEY_HEARTBEATS"] = 13] = "KEY_HEARTBEATS";
23
- ERedisKey[ERedisKey["KEY_HEARTBEAT_CONSUMER_WEIGHT"] = 14] = "KEY_HEARTBEAT_CONSUMER_WEIGHT";
24
- ERedisKey[ERedisKey["KEY_QUEUES"] = 15] = "KEY_QUEUES";
25
- ERedisKey[ERedisKey["KEY_PROCESSING_QUEUES"] = 16] = "KEY_PROCESSING_QUEUES";
26
- ERedisKey[ERedisKey["KEY_CONSUMER_QUEUES"] = 17] = "KEY_CONSUMER_QUEUES";
27
- ERedisKey[ERedisKey["KEY_NS_QUEUES"] = 18] = "KEY_NS_QUEUES";
28
- ERedisKey[ERedisKey["KEY_NAMESPACES"] = 19] = "KEY_NAMESPACES";
29
- ERedisKey[ERedisKey["KEY_QUEUE_RATE_LIMIT_COUNTER"] = 20] = "KEY_QUEUE_RATE_LIMIT_COUNTER";
30
- ERedisKey[ERedisKey["KEY_QUEUE_PROPERTIES"] = 21] = "KEY_QUEUE_PROPERTIES";
16
+ ERedisKey[ERedisKey["KEY_QUEUE_DELAYED"] = 7] = "KEY_QUEUE_DELAYED";
17
+ ERedisKey[ERedisKey["KEY_QUEUE_REQUEUED"] = 8] = "KEY_QUEUE_REQUEUED";
18
+ ERedisKey[ERedisKey["KEY_QUEUE_CONSUMERS"] = 9] = "KEY_QUEUE_CONSUMERS";
19
+ ERedisKey[ERedisKey["KEY_QUEUE_PROCESSING_QUEUES"] = 10] = "KEY_QUEUE_PROCESSING_QUEUES";
20
+ ERedisKey[ERedisKey["KEY_QUEUE_WORKERS_LOCK"] = 11] = "KEY_QUEUE_WORKERS_LOCK";
21
+ ERedisKey[ERedisKey["KEY_QUEUE_RATE_LIMIT_COUNTER"] = 12] = "KEY_QUEUE_RATE_LIMIT_COUNTER";
22
+ ERedisKey[ERedisKey["KEY_QUEUE_PROPERTIES"] = 13] = "KEY_QUEUE_PROPERTIES";
23
+ ERedisKey[ERedisKey["KEY_QUEUE_MESSAGES"] = 14] = "KEY_QUEUE_MESSAGES";
24
+ ERedisKey[ERedisKey["KEY_QUEUE_MESSAGE_IDS"] = 15] = "KEY_QUEUE_MESSAGE_IDS";
25
+ ERedisKey[ERedisKey["KEY_QUEUE_CONSUMER_GROUPS"] = 16] = "KEY_QUEUE_CONSUMER_GROUPS";
26
+ ERedisKey[ERedisKey["KEY_QUEUES"] = 17] = "KEY_QUEUES";
27
+ ERedisKey[ERedisKey["KEY_CONSUMER_QUEUES"] = 18] = "KEY_CONSUMER_QUEUES";
28
+ ERedisKey[ERedisKey["KEY_CONSUMER_HEARTBEAT"] = 19] = "KEY_CONSUMER_HEARTBEAT";
29
+ ERedisKey[ERedisKey["KEY_NS_QUEUES"] = 20] = "KEY_NS_QUEUES";
30
+ ERedisKey[ERedisKey["KEY_NAMESPACES"] = 21] = "KEY_NAMESPACES";
31
31
  ERedisKey[ERedisKey["KEY_EXCHANGE_BINDINGS"] = 22] = "KEY_EXCHANGE_BINDINGS";
32
32
  ERedisKey[ERedisKey["KEY_FANOUT_EXCHANGES"] = 23] = "KEY_FANOUT_EXCHANGES";
33
33
  ERedisKey[ERedisKey["KEY_MESSAGE"] = 24] = "KEY_MESSAGE";
34
- ERedisKey[ERedisKey["KEY_QUEUE_MESSAGES"] = 25] = "KEY_QUEUE_MESSAGES";
35
- ERedisKey[ERedisKey["KEY_QUEUE_MESSAGE_IDS"] = 26] = "KEY_QUEUE_MESSAGE_IDS";
36
- ERedisKey[ERedisKey["KEY_DELETED_QUEUES"] = 27] = "KEY_DELETED_QUEUES";
37
- ERedisKey[ERedisKey["KEY_QUEUE_CONSUMER_GROUPS"] = 28] = "KEY_QUEUE_CONSUMER_GROUPS";
38
34
  })(ERedisKey || (ERedisKey = {}));
39
35
  function makeNamespacedKeys(keys, namespace, ...rest) {
40
36
  const result = {};
@@ -56,12 +52,15 @@ exports.redisKeys = {
56
52
  keyQueueProcessingQueues: ERedisKey.KEY_QUEUE_PROCESSING_QUEUES,
57
53
  keyQueueAcknowledged: ERedisKey.KEY_QUEUE_ACKNOWLEDGED,
58
54
  keyQueueScheduled: ERedisKey.KEY_QUEUE_SCHEDULED,
55
+ keyQueueRequeued: ERedisKey.KEY_QUEUE_REQUEUED,
56
+ keyQueueDelayed: ERedisKey.KEY_QUEUE_DELAYED,
59
57
  keyQueueConsumers: ERedisKey.KEY_QUEUE_CONSUMERS,
60
58
  keyQueueRateLimitCounter: ERedisKey.KEY_QUEUE_RATE_LIMIT_COUNTER,
61
59
  keyQueueProperties: ERedisKey.KEY_QUEUE_PROPERTIES,
62
60
  keyQueueMessages: ERedisKey.KEY_QUEUE_MESSAGES,
63
61
  keyQueueMessageIds: ERedisKey.KEY_QUEUE_MESSAGE_IDS,
64
62
  keyQueueConsumerGroups: ERedisKey.KEY_QUEUE_CONSUMER_GROUPS,
63
+ keyQueueWorkersLock: ERedisKey.KEY_QUEUE_WORKERS_LOCK,
65
64
  };
66
65
  const pendingKeys = {
67
66
  keyQueuePending: ERedisKey.KEY_QUEUE_PENDING,
@@ -85,6 +84,7 @@ exports.redisKeys = {
85
84
  getConsumerKeys(instanceId) {
86
85
  const consumerKeys = {
87
86
  keyConsumerQueues: ERedisKey.KEY_CONSUMER_QUEUES,
87
+ keyConsumerHeartbeat: ERedisKey.KEY_CONSUMER_HEARTBEAT,
88
88
  };
89
89
  return Object.assign({}, makeNamespacedKeys(consumerKeys, globalNamespace, instanceId));
90
90
  },
@@ -97,16 +97,8 @@ exports.redisKeys = {
97
97
  getMainKeys() {
98
98
  const mainKeys = {
99
99
  keyQueues: ERedisKey.KEY_QUEUES,
100
- keyProcessingQueues: ERedisKey.KEY_PROCESSING_QUEUES,
101
- keyHeartbeats: ERedisKey.KEY_HEARTBEATS,
102
- keyHeartbeatTimestamps: ERedisKey.KEY_HEARTBEAT_CONSUMER_WEIGHT,
103
- keyScheduledMessages: ERedisKey.KEY_SCHEDULED_MESSAGES,
104
- keyLockConsumerWorkersRunner: ERedisKey.KEY_LOCK_CONSUMER_WORKERS_RUNNER,
105
- keyDelayedMessages: ERedisKey.KEY_DELAYED_MESSAGES,
106
- keyRequeueMessages: ERedisKey.KEY_REQUEUE_MESSAGES,
107
100
  keyNamespaces: ERedisKey.KEY_NAMESPACES,
108
101
  keyFanOutExchanges: ERedisKey.KEY_FANOUT_EXCHANGES,
109
- keyDeletedQueues: ERedisKey.KEY_DELETED_QUEUES,
110
102
  };
111
103
  return makeNamespacedKeys(mainKeys, globalNamespace);
112
104
  },
@@ -1,12 +1,12 @@
1
- import { EConsumeMessageDeadLetterCause, EConsumeMessageUnacknowledgedCause, IConsumerHeartbeat, IQueueParams, IQueueParsedParams, IQueueProperties } from '../../lib/index.js';
1
+ import { EMessageUnknowledgmentDeadLetterReason, EMessageUnknowledgmentReason, IConsumerHeartbeat, IQueueParams, IQueueParsedParams, IQueueProperties } from '../../lib/index.js';
2
2
  export type TConsumerHeartbeatEvent = {
3
3
  'consumerHeartbeat.heartbeat': (consumerId: string, timestamp: number, heartbeatPayload: IConsumerHeartbeat) => void;
4
4
  'consumerHeartbeat.error': (err: Error) => void;
5
5
  };
6
6
  export type TConsumerConsumeMessageEvent = {
7
7
  'consumer.consumeMessage.messageAcknowledged': (messageId: string, queue: IQueueParsedParams, messageHandlerId: string, consumerId: string) => void;
8
- 'consumer.consumeMessage.messageUnacknowledged': (messageId: string, queue: IQueueParsedParams, messageHandlerId: string, consumerId: string, cause: EConsumeMessageUnacknowledgedCause) => void;
9
- 'consumer.consumeMessage.messageDeadLettered': (messageId: string, queue: IQueueParsedParams, messageHandlerId: string, consumerId: string, cause: EConsumeMessageDeadLetterCause) => void;
8
+ 'consumer.consumeMessage.messageUnacknowledged': (messageId: string, queue: IQueueParsedParams, messageHandlerId: string, consumerId: string, unknowledgmentReason: EMessageUnknowledgmentReason) => void;
9
+ 'consumer.consumeMessage.messageDeadLettered': (messageId: string, queue: IQueueParsedParams, messageHandlerId: string, consumerId: string, deadLetterReason: EMessageUnknowledgmentDeadLetterReason) => void;
10
10
  'consumer.consumeMessage.messageRequeued': (messageId: string, queue: IQueueParsedParams, messageHandlerId: string, consumerId: string) => void;
11
11
  'consumer.consumeMessage.messageDelayed': (messageId: string, queue: IQueueParsedParams, messageHandlerId: string, consumerId: string) => void;
12
12
  'consumer.consumeMessage.error': (err: Error, consumerId: string, queue: IQueueParsedParams) => void;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const configuration_message_queue_size_error_js_1 = require("../errors/configuration-message-queue-size.error.js");
4
- const configuration_message_store_expire_error_js_1 = require("../errors/configuration-message-store-expire.error.js");
3
+ const index_js_1 = require("../errors/index.js");
5
4
  function getMessageStorageConfig(config, key) {
6
5
  var _a;
7
6
  const { store } = (_a = config.messages) !== null && _a !== void 0 ? _a : {};
@@ -25,11 +24,11 @@ function getMessageStorageParams(config, key) {
25
24
  }
26
25
  const queueSize = Number((_a = params.queueSize) !== null && _a !== void 0 ? _a : 0);
27
26
  if (isNaN(queueSize) || queueSize < 0) {
28
- throw new configuration_message_queue_size_error_js_1.ConfigurationMessageQueueSizeError();
27
+ throw new index_js_1.ConfigurationMessageQueueSizeError();
29
28
  }
30
29
  const expire = Number((_b = params.expire) !== null && _b !== void 0 ? _b : 0);
31
30
  if (isNaN(expire) || expire < 0) {
32
- throw new configuration_message_store_expire_error_js_1.ConfigurationMessageStoreExpireError();
31
+ throw new index_js_1.ConfigurationMessageStoreExpireError();
33
32
  }
34
33
  return {
35
34
  store: true,
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const redis_keys_js_1 = require("../common/redis-keys/redis-keys.js");
4
- const configuration_namespace_error_js_1 = require("./errors/configuration-namespace.error.js");
4
+ const index_js_1 = require("./errors/index.js");
5
5
  const defaultNamespace = 'default';
6
6
  function Namespace(userConfig) {
7
7
  if (!userConfig.namespace)
8
8
  return defaultNamespace;
9
9
  const ns = redis_keys_js_1.redisKeys.validateNamespace(userConfig.namespace);
10
10
  if (ns instanceof Error)
11
- throw new configuration_namespace_error_js_1.ConfigurationNamespaceError();
11
+ throw new index_js_1.ConfigurationNamespaceError();
12
12
  return ns;
13
13
  }
14
14
  exports.default = Namespace;
@@ -1,4 +1,4 @@
1
- import { ICallback, ILogger, Runnable, TRedisClientEvent, TUnaryFunction, WorkerResourceGroup } from 'redis-smq-common';
1
+ import { ICallback, ILogger, Runnable, TRedisClientEvent, TUnaryFunction } from 'redis-smq-common';
2
2
  import { TConsumerEvent } from '../../../common/index.js';
3
3
  import { IQueueParsedParams, TQueueExtendedParams } from '../../queue/index.js';
4
4
  import { ConsumerHeartbeat } from '../consumer-heartbeat/consumer-heartbeat.js';
@@ -10,13 +10,10 @@ export declare class Consumer extends Runnable<TConsumerEvent> {
10
10
  protected redisClient: import("../../../common/redis-client/redis-client-instance.js").RedisClientInstance;
11
11
  protected eventBus: import("../../index.js").EventBusRedisInstance | undefined;
12
12
  protected heartbeat: ConsumerHeartbeat | null;
13
- protected workerResourceGroup: WorkerResourceGroup | null;
14
13
  constructor(enableMultiplexing?: boolean);
15
14
  protected onRedisError: TRedisClientEvent['error'];
16
15
  protected setUpHeartbeat: (cb: ICallback<void>) => void;
17
16
  protected shutDownHeartbeat: (cb: ICallback<void>) => void;
18
- protected setUpConsumerWorkers: (cb: ICallback<void>) => void;
19
- protected shutDownConsumerWorkers: (cb: ICallback<void>) => void;
20
17
  protected runMessageHandlers: (cb: ICallback<void>) => void;
21
18
  protected shutdownMessageHandlers: (cb: ICallback<void>) => void;
22
19
  protected initRedisClient: (cb: ICallback<void>) => void;
@@ -1,17 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.Consumer = void 0;
7
- const path_1 = __importDefault(require("path"));
8
4
  const redis_smq_common_1 = require("redis-smq-common");
9
5
  const redis_client_factory_js_1 = require("../../../common/redis-client/redis-client-factory.js");
10
- const redis_keys_js_1 = require("../../../common/redis-keys/redis-keys.js");
11
6
  const index_js_1 = require("../../../config/index.js");
12
7
  const event_bus_redis_factory_js_1 = require("../../event-bus/event-bus-redis-factory.js");
13
8
  const _parse_queue_extended_params_js_1 = require("../../queue/_/_parse-queue-extended-params.js");
14
- const _cleanup_offline_consumer_js_1 = require("../consumer-heartbeat/_/_cleanup-offline-consumer.js");
15
9
  const consumer_heartbeat_js_1 = require("../consumer-heartbeat/consumer-heartbeat.js");
16
10
  const message_handler_runner_js_1 = require("../message-handler-runner/message-handler-runner.js");
17
11
  const multiplexed_message_handler_runner_js_1 = require("../message-handler-runner/multiplexed-message-handler-runner.js");
@@ -20,7 +14,6 @@ class Consumer extends redis_smq_common_1.Runnable {
20
14
  constructor(enableMultiplexing) {
21
15
  super();
22
16
  this.heartbeat = null;
23
- this.workerResourceGroup = null;
24
17
  this.onRedisError = (error) => {
25
18
  this.handleError(error);
26
19
  };
@@ -39,42 +32,6 @@ class Consumer extends redis_smq_common_1.Runnable {
39
32
  else
40
33
  cb();
41
34
  };
42
- this.setUpConsumerWorkers = (cb) => {
43
- const config = index_js_1.Configuration.getSetConfig();
44
- const { keyLockConsumerWorkersRunner } = redis_keys_js_1.redisKeys.getMainKeys();
45
- const nsLogger = redis_smq_common_1.logger.getLogger(config.logger, `consumer:${this.id}:worker-runner`);
46
- const redisClient = this.redisClient.getInstance();
47
- if (redisClient instanceof Error) {
48
- cb(redisClient);
49
- return void 0;
50
- }
51
- this.workerResourceGroup = new redis_smq_common_1.WorkerResourceGroup(redisClient, nsLogger, keyLockConsumerWorkersRunner);
52
- this.workerResourceGroup.on('workerResourceGroup.error', (err) => this.handleError(err));
53
- const workersDir = path_1.default.resolve((0, redis_smq_common_1.getDirname)(), '../workers');
54
- this.workerResourceGroup.loadFromDir(workersDir, config, (err) => {
55
- var _a;
56
- if (err)
57
- cb(err);
58
- else {
59
- (_a = this.workerResourceGroup) === null || _a === void 0 ? void 0 : _a.run((err) => {
60
- if (err)
61
- this.handleError(err);
62
- });
63
- cb();
64
- }
65
- });
66
- };
67
- this.shutDownConsumerWorkers = (cb) => {
68
- if (this.workerResourceGroup) {
69
- this.workerResourceGroup.shutdown(() => {
70
- this.workerResourceGroup = null;
71
- cb();
72
- });
73
- }
74
- else {
75
- cb();
76
- }
77
- };
78
35
  this.runMessageHandlers = (cb) => {
79
36
  this.messageHandlerRunner.run((err) => cb(err));
80
37
  };
@@ -123,23 +80,13 @@ class Consumer extends redis_smq_common_1.Runnable {
123
80
  this.initRedisClient,
124
81
  this.setUpHeartbeat,
125
82
  this.runMessageHandlers,
126
- this.setUpConsumerWorkers,
127
83
  ]);
128
84
  }
129
85
  goingDown() {
130
86
  this.emit('consumer.goingDown', this.id);
131
87
  return [
132
- this.shutDownConsumerWorkers,
133
88
  this.shutdownMessageHandlers,
134
89
  this.shutDownHeartbeat,
135
- (cb) => {
136
- const redisClient = this.redisClient.getInstance();
137
- if (redisClient instanceof Error) {
138
- cb();
139
- return void 0;
140
- }
141
- (0, _cleanup_offline_consumer_js_1._cleanupOfflineConsumer)(redisClient, [this.id], cb);
142
- },
143
90
  this.shutDownRedisClient,
144
91
  ].concat(super.goingDown());
145
92
  }