redis-smq 8.2.1 → 8.3.1
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.
- package/CHANGELOG.md +20 -0
- package/dist/cjs/src/common/event-bus/event-bus.d.ts +6 -0
- package/dist/cjs/src/common/event-bus/event-bus.d.ts.map +1 -0
- package/dist/cjs/src/common/event-bus/event-bus.js +13 -0
- package/dist/cjs/src/common/event-bus/event-bus.js.map +1 -0
- package/dist/cjs/src/common/index.d.ts +1 -0
- package/dist/cjs/src/common/index.d.ts.map +1 -1
- package/dist/cjs/src/common/index.js +1 -0
- package/dist/cjs/src/common/index.js.map +1 -1
- package/dist/cjs/src/common/redis-client/redis-client.d.ts +4 -9
- package/dist/cjs/src/common/redis-client/redis-client.d.ts.map +1 -1
- package/dist/cjs/src/common/redis-client/redis-client.js +8 -55
- package/dist/cjs/src/common/redis-client/redis-client.js.map +1 -1
- package/dist/cjs/src/common/redis-client/scripts/lua/acknowledge-message.lua +19 -8
- package/dist/cjs/src/common/redis-client/scripts/lua/create-queue.lua +15 -10
- package/dist/cjs/src/common/redis-client/scripts/lua/delete-consumer-group.lua +20 -9
- package/dist/cjs/src/common/redis-client/scripts/lua/delete-message.lua +87 -87
- package/dist/cjs/src/common/redis-client/scripts/lua/fetch-message-for-processing.lua +11 -3
- package/dist/cjs/src/common/redis-client/scripts/lua/handle-processing-queue.lua +53 -82
- package/dist/cjs/src/common/redis-client/scripts/lua/has-queue-rate-exceeded.lua +15 -8
- package/dist/cjs/src/common/redis-client/scripts/lua/init-consumer-queue.lua +12 -8
- package/dist/cjs/src/common/redis-client/scripts/lua/publish-message.lua +19 -18
- package/dist/cjs/src/common/redis-client/scripts/lua/publish-scheduled-message.lua +89 -119
- package/dist/cjs/src/common/redis-client/scripts/lua/requeue-message.lua +54 -53
- package/dist/cjs/src/common/redis-client/scripts/lua/schedule-message.lua +47 -76
- package/dist/cjs/src/common/redis-client/scripts/lua/set-queue-rate-limit.lua +4 -5
- package/dist/cjs/src/common/redis-client/scripts/scripts.d.ts +15 -3
- package/dist/cjs/src/common/redis-client/scripts/scripts.d.ts.map +1 -1
- package/dist/cjs/src/common/redis-client/scripts/scripts.js +2 -8
- package/dist/cjs/src/common/redis-client/scripts/scripts.js.map +1 -1
- package/dist/cjs/src/config/types/config.d.ts +4 -1
- package/dist/cjs/src/config/types/config.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/consumer/consumer.d.ts +4 -5
- package/dist/cjs/src/lib/consumer/consumer/consumer.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/consumer/consumer.js +6 -24
- package/dist/cjs/src/lib/consumer/consumer/consumer.js.map +1 -1
- package/dist/cjs/src/lib/consumer/consumer/event-bus-publisher.d.ts +1 -1
- package/dist/cjs/src/lib/consumer/consumer/event-bus-publisher.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/consumer-heartbeat/consumer-heartbeat.d.ts +1 -1
- package/dist/cjs/src/lib/consumer/consumer-heartbeat/consumer-heartbeat.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/consumer-heartbeat/consumer-heartbeat.js.map +1 -1
- package/dist/cjs/src/lib/consumer/consumer-heartbeat/event-bus-publisher.d.ts +1 -1
- package/dist/cjs/src/lib/consumer/consumer-heartbeat/event-bus-publisher.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/consume-message/consume-message.d.ts +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/consume-message/consume-message.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/consume-message/consume-message.js +25 -33
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/consume-message/consume-message.js.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/consume-message/event-bus-publisher.d.ts +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/consume-message/event-bus-publisher.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/consume-message/message-unacknowledgement.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/consume-message/message-unacknowledgement.js +35 -51
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/consume-message/message-unacknowledgement.js.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/consume-message/processing-queue.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/consume-message/processing-queue.js +4 -10
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/consume-message/processing-queue.js.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/dequeue-message/dequeue-message.d.ts +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/dequeue-message/dequeue-message.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/dequeue-message/dequeue-message.js +12 -12
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/dequeue-message/dequeue-message.js.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/dequeue-message/event-bus-publisher.d.ts +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/dequeue-message/event-bus-publisher.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/even-bus-publisher.d.ts +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/even-bus-publisher.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/message-handler.d.ts +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/multiplexed-message-handler.d.ts +1 -1
- package/dist/cjs/src/lib/consumer/message-handler/message-handler/multiplexed-message-handler.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler-runner/event-bus-publisher.d.ts +1 -1
- package/dist/cjs/src/lib/consumer/message-handler-runner/event-bus-publisher.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler-runner/message-handler-runner.d.ts +1 -1
- package/dist/cjs/src/lib/consumer/message-handler-runner/message-handler-runner.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer/message-handler-runner/multiplexed-message-handler-runner.d.ts +1 -1
- package/dist/cjs/src/lib/consumer/message-handler-runner/multiplexed-message-handler-runner.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer-groups/_/_save-consumer-group.js +1 -1
- package/dist/cjs/src/lib/consumer-groups/_/_save-consumer-group.js.map +1 -1
- package/dist/cjs/src/lib/consumer-groups/consumer-groups.d.ts +1 -1
- package/dist/cjs/src/lib/consumer-groups/consumer-groups.d.ts.map +1 -1
- package/dist/cjs/src/lib/consumer-groups/consumer-groups.js +25 -86
- package/dist/cjs/src/lib/consumer-groups/consumer-groups.js.map +1 -1
- package/dist/cjs/src/lib/exchange/exchange-fan-out/exchange-fan-out.d.ts.map +1 -1
- package/dist/cjs/src/lib/exchange/exchange-fan-out/exchange-fan-out.js +16 -72
- package/dist/cjs/src/lib/exchange/exchange-fan-out/exchange-fan-out.js.map +1 -1
- package/dist/cjs/src/lib/exchange/exchange-topic/exchange-topic.d.ts.map +1 -1
- package/dist/cjs/src/lib/exchange/exchange-topic/exchange-topic.js +10 -24
- package/dist/cjs/src/lib/exchange/exchange-topic/exchange-topic.js.map +1 -1
- package/dist/cjs/src/lib/index.d.ts +0 -1
- package/dist/cjs/src/lib/index.d.ts.map +1 -1
- package/dist/cjs/src/lib/index.js +0 -1
- package/dist/cjs/src/lib/index.js.map +1 -1
- package/dist/cjs/src/lib/message/_/_delete-message.d.ts +2 -1
- package/dist/cjs/src/lib/message/_/_delete-message.d.ts.map +1 -1
- package/dist/cjs/src/lib/message/_/_delete-message.js +47 -28
- package/dist/cjs/src/lib/message/_/_delete-message.js.map +1 -1
- package/dist/cjs/src/lib/message/message.d.ts +3 -3
- package/dist/cjs/src/lib/message/message.d.ts.map +1 -1
- package/dist/cjs/src/lib/message/message.js +103 -174
- package/dist/cjs/src/lib/message/message.js.map +1 -1
- package/dist/cjs/src/lib/message/types/delete-message.d.ts +12 -0
- package/dist/cjs/src/lib/message/types/delete-message.d.ts.map +1 -0
- package/dist/cjs/src/lib/{event-bus/types/config.js → message/types/delete-message.js} +1 -1
- package/dist/cjs/src/lib/message/types/delete-message.js.map +1 -0
- package/dist/cjs/src/lib/message/types/index.d.ts +1 -0
- package/dist/cjs/src/lib/message/types/index.d.ts.map +1 -1
- package/dist/cjs/src/lib/message/types/index.js +1 -0
- package/dist/cjs/src/lib/message/types/index.js.map +1 -1
- package/dist/cjs/src/lib/namespace/namespace.d.ts.map +1 -1
- package/dist/cjs/src/lib/namespace/namespace.js +10 -38
- package/dist/cjs/src/lib/namespace/namespace.js.map +1 -1
- package/dist/cjs/src/lib/producer/event-bus-publisher.d.ts +1 -1
- package/dist/cjs/src/lib/producer/event-bus-publisher.d.ts.map +1 -1
- package/dist/cjs/src/lib/producer/producer.d.ts +4 -5
- package/dist/cjs/src/lib/producer/producer.d.ts.map +1 -1
- package/dist/cjs/src/lib/producer/producer.js +1 -23
- package/dist/cjs/src/lib/producer/producer.js.map +1 -1
- package/dist/cjs/src/lib/producer/queue-consumer-groups-cache.d.ts +1 -1
- package/dist/cjs/src/lib/producer/queue-consumer-groups-cache.d.ts.map +1 -1
- package/dist/cjs/src/lib/queue/_/_delete-queue.js +1 -1
- package/dist/cjs/src/lib/queue/_/_delete-queue.js.map +1 -1
- package/dist/cjs/src/lib/queue/queue.d.ts +1 -1
- package/dist/cjs/src/lib/queue/queue.d.ts.map +1 -1
- package/dist/cjs/src/lib/queue/queue.js +90 -194
- package/dist/cjs/src/lib/queue/queue.js.map +1 -1
- package/dist/cjs/src/lib/queue-messages/queue-messages/queue-messages.d.ts.map +1 -1
- package/dist/cjs/src/lib/queue-messages/queue-messages/queue-messages.js +3 -11
- package/dist/cjs/src/lib/queue-messages/queue-messages/queue-messages.js.map +1 -1
- package/dist/cjs/src/lib/queue-messages/queue-messages/queue-pending-messages/queue-pending-messages.d.ts.map +1 -1
- package/dist/cjs/src/lib/queue-messages/queue-messages/queue-pending-messages/queue-pending-messages.js +9 -17
- package/dist/cjs/src/lib/queue-messages/queue-messages/queue-pending-messages/queue-pending-messages.js.map +1 -1
- package/dist/cjs/src/lib/queue-messages/queue-messages-manager/queue-messages-manager-abstract.d.ts.map +1 -1
- package/dist/cjs/src/lib/queue-messages/queue-messages-manager/queue-messages-manager-abstract.js +11 -43
- package/dist/cjs/src/lib/queue-messages/queue-messages-manager/queue-messages-manager-abstract.js.map +1 -1
- package/dist/cjs/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-list.d.ts.map +1 -1
- package/dist/cjs/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-list.js +6 -30
- package/dist/cjs/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-list.js.map +1 -1
- package/dist/cjs/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-set.d.ts.map +1 -1
- package/dist/cjs/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-set.js +10 -50
- package/dist/cjs/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-set.js.map +1 -1
- package/dist/cjs/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-sorted-set.d.ts.map +1 -1
- package/dist/cjs/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-sorted-set.js +8 -40
- package/dist/cjs/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-sorted-set.js.map +1 -1
- package/dist/cjs/src/lib/queue-rate-limit/queue-rate-limit.d.ts.map +1 -1
- package/dist/cjs/src/lib/queue-rate-limit/queue-rate-limit.js +16 -72
- package/dist/cjs/src/lib/queue-rate-limit/queue-rate-limit.js.map +1 -1
- package/dist/esm/src/common/event-bus/event-bus.d.ts +6 -0
- package/dist/esm/src/common/event-bus/event-bus.d.ts.map +1 -0
- package/dist/esm/src/common/event-bus/event-bus.js +9 -0
- package/dist/esm/src/common/event-bus/event-bus.js.map +1 -0
- package/dist/esm/src/common/index.d.ts +1 -0
- package/dist/esm/src/common/index.d.ts.map +1 -1
- package/dist/esm/src/common/index.js +1 -0
- package/dist/esm/src/common/index.js.map +1 -1
- package/dist/esm/src/common/redis-client/redis-client.d.ts +4 -9
- package/dist/esm/src/common/redis-client/redis-client.d.ts.map +1 -1
- package/dist/esm/src/common/redis-client/redis-client.js +11 -55
- package/dist/esm/src/common/redis-client/redis-client.js.map +1 -1
- package/dist/esm/src/common/redis-client/scripts/lua/acknowledge-message.lua +19 -8
- package/dist/esm/src/common/redis-client/scripts/lua/create-queue.lua +15 -10
- package/dist/esm/src/common/redis-client/scripts/lua/delete-consumer-group.lua +20 -9
- package/dist/esm/src/common/redis-client/scripts/lua/delete-message.lua +87 -87
- package/dist/esm/src/common/redis-client/scripts/lua/fetch-message-for-processing.lua +11 -3
- package/dist/esm/src/common/redis-client/scripts/lua/handle-processing-queue.lua +53 -82
- package/dist/esm/src/common/redis-client/scripts/lua/has-queue-rate-exceeded.lua +15 -8
- package/dist/esm/src/common/redis-client/scripts/lua/init-consumer-queue.lua +12 -8
- package/dist/esm/src/common/redis-client/scripts/lua/publish-message.lua +19 -18
- package/dist/esm/src/common/redis-client/scripts/lua/publish-scheduled-message.lua +89 -119
- package/dist/esm/src/common/redis-client/scripts/lua/requeue-message.lua +54 -53
- package/dist/esm/src/common/redis-client/scripts/lua/schedule-message.lua +47 -76
- package/dist/esm/src/common/redis-client/scripts/lua/set-queue-rate-limit.lua +4 -5
- package/dist/esm/src/common/redis-client/scripts/scripts.d.ts +15 -3
- package/dist/esm/src/common/redis-client/scripts/scripts.d.ts.map +1 -1
- package/dist/esm/src/common/redis-client/scripts/scripts.js +1 -6
- package/dist/esm/src/common/redis-client/scripts/scripts.js.map +1 -1
- package/dist/esm/src/config/types/config.d.ts +4 -1
- package/dist/esm/src/config/types/config.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/consumer/consumer.d.ts +4 -5
- package/dist/esm/src/lib/consumer/consumer/consumer.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/consumer/consumer.js +3 -21
- package/dist/esm/src/lib/consumer/consumer/consumer.js.map +1 -1
- package/dist/esm/src/lib/consumer/consumer/event-bus-publisher.d.ts +1 -1
- package/dist/esm/src/lib/consumer/consumer/event-bus-publisher.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/consumer-heartbeat/consumer-heartbeat.d.ts +1 -1
- package/dist/esm/src/lib/consumer/consumer-heartbeat/consumer-heartbeat.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/consumer-heartbeat/consumer-heartbeat.js.map +1 -1
- package/dist/esm/src/lib/consumer/consumer-heartbeat/event-bus-publisher.d.ts +1 -1
- package/dist/esm/src/lib/consumer/consumer-heartbeat/event-bus-publisher.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/consume-message/consume-message.d.ts +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/consume-message/consume-message.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/consume-message/consume-message.js +26 -34
- package/dist/esm/src/lib/consumer/message-handler/message-handler/consume-message/consume-message.js.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/consume-message/event-bus-publisher.d.ts +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/consume-message/event-bus-publisher.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/consume-message/message-unacknowledgement.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/consume-message/message-unacknowledgement.js +36 -52
- package/dist/esm/src/lib/consumer/message-handler/message-handler/consume-message/message-unacknowledgement.js.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/consume-message/processing-queue.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/consume-message/processing-queue.js +5 -11
- package/dist/esm/src/lib/consumer/message-handler/message-handler/consume-message/processing-queue.js.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/dequeue-message/dequeue-message.d.ts +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/dequeue-message/dequeue-message.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/dequeue-message/dequeue-message.js +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/dequeue-message/dequeue-message.js.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/dequeue-message/event-bus-publisher.d.ts +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/dequeue-message/event-bus-publisher.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/even-bus-publisher.d.ts +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/even-bus-publisher.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/message-handler.d.ts +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/multiplexed-message-handler.d.ts +1 -1
- package/dist/esm/src/lib/consumer/message-handler/message-handler/multiplexed-message-handler.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler-runner/event-bus-publisher.d.ts +1 -1
- package/dist/esm/src/lib/consumer/message-handler-runner/event-bus-publisher.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler-runner/message-handler-runner.d.ts +1 -1
- package/dist/esm/src/lib/consumer/message-handler-runner/message-handler-runner.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer/message-handler-runner/multiplexed-message-handler-runner.d.ts +1 -1
- package/dist/esm/src/lib/consumer/message-handler-runner/multiplexed-message-handler-runner.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer-groups/_/_save-consumer-group.js +1 -1
- package/dist/esm/src/lib/consumer-groups/_/_save-consumer-group.js.map +1 -1
- package/dist/esm/src/lib/consumer-groups/consumer-groups.d.ts +1 -1
- package/dist/esm/src/lib/consumer-groups/consumer-groups.d.ts.map +1 -1
- package/dist/esm/src/lib/consumer-groups/consumer-groups.js +23 -84
- package/dist/esm/src/lib/consumer-groups/consumer-groups.js.map +1 -1
- package/dist/esm/src/lib/exchange/exchange-fan-out/exchange-fan-out.d.ts.map +1 -1
- package/dist/esm/src/lib/exchange/exchange-fan-out/exchange-fan-out.js +17 -73
- package/dist/esm/src/lib/exchange/exchange-fan-out/exchange-fan-out.js.map +1 -1
- package/dist/esm/src/lib/exchange/exchange-topic/exchange-topic.d.ts.map +1 -1
- package/dist/esm/src/lib/exchange/exchange-topic/exchange-topic.js +11 -25
- package/dist/esm/src/lib/exchange/exchange-topic/exchange-topic.js.map +1 -1
- package/dist/esm/src/lib/index.d.ts +0 -1
- package/dist/esm/src/lib/index.d.ts.map +1 -1
- package/dist/esm/src/lib/index.js +0 -1
- package/dist/esm/src/lib/index.js.map +1 -1
- package/dist/esm/src/lib/message/_/_delete-message.d.ts +2 -1
- package/dist/esm/src/lib/message/_/_delete-message.d.ts.map +1 -1
- package/dist/esm/src/lib/message/_/_delete-message.js +50 -31
- package/dist/esm/src/lib/message/_/_delete-message.js.map +1 -1
- package/dist/esm/src/lib/message/message.d.ts +3 -3
- package/dist/esm/src/lib/message/message.d.ts.map +1 -1
- package/dist/esm/src/lib/message/message.js +104 -175
- package/dist/esm/src/lib/message/message.js.map +1 -1
- package/dist/esm/src/lib/message/types/delete-message.d.ts +12 -0
- package/dist/esm/src/lib/message/types/delete-message.d.ts.map +1 -0
- package/dist/esm/src/lib/message/types/delete-message.js +2 -0
- package/dist/esm/src/lib/message/types/delete-message.js.map +1 -0
- package/dist/esm/src/lib/message/types/index.d.ts +1 -0
- package/dist/esm/src/lib/message/types/index.d.ts.map +1 -1
- package/dist/esm/src/lib/message/types/index.js +1 -0
- package/dist/esm/src/lib/message/types/index.js.map +1 -1
- package/dist/esm/src/lib/namespace/namespace.d.ts.map +1 -1
- package/dist/esm/src/lib/namespace/namespace.js +11 -39
- package/dist/esm/src/lib/namespace/namespace.js.map +1 -1
- package/dist/esm/src/lib/producer/event-bus-publisher.d.ts +1 -1
- package/dist/esm/src/lib/producer/event-bus-publisher.d.ts.map +1 -1
- package/dist/esm/src/lib/producer/producer.d.ts +4 -5
- package/dist/esm/src/lib/producer/producer.d.ts.map +1 -1
- package/dist/esm/src/lib/producer/producer.js +2 -24
- package/dist/esm/src/lib/producer/producer.js.map +1 -1
- package/dist/esm/src/lib/producer/queue-consumer-groups-cache.d.ts +1 -1
- package/dist/esm/src/lib/producer/queue-consumer-groups-cache.d.ts.map +1 -1
- package/dist/esm/src/lib/queue/_/_delete-queue.js +1 -1
- package/dist/esm/src/lib/queue/_/_delete-queue.js.map +1 -1
- package/dist/esm/src/lib/queue/queue.d.ts +1 -1
- package/dist/esm/src/lib/queue/queue.d.ts.map +1 -1
- package/dist/esm/src/lib/queue/queue.js +88 -192
- package/dist/esm/src/lib/queue/queue.js.map +1 -1
- package/dist/esm/src/lib/queue-messages/queue-messages/queue-messages.d.ts.map +1 -1
- package/dist/esm/src/lib/queue-messages/queue-messages/queue-messages.js +4 -12
- package/dist/esm/src/lib/queue-messages/queue-messages/queue-messages.js.map +1 -1
- package/dist/esm/src/lib/queue-messages/queue-messages/queue-pending-messages/queue-pending-messages.d.ts.map +1 -1
- package/dist/esm/src/lib/queue-messages/queue-messages/queue-pending-messages/queue-pending-messages.js +10 -18
- package/dist/esm/src/lib/queue-messages/queue-messages/queue-pending-messages/queue-pending-messages.js.map +1 -1
- package/dist/esm/src/lib/queue-messages/queue-messages-manager/queue-messages-manager-abstract.d.ts.map +1 -1
- package/dist/esm/src/lib/queue-messages/queue-messages-manager/queue-messages-manager-abstract.js +12 -44
- package/dist/esm/src/lib/queue-messages/queue-messages-manager/queue-messages-manager-abstract.js.map +1 -1
- package/dist/esm/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-list.d.ts.map +1 -1
- package/dist/esm/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-list.js +7 -31
- package/dist/esm/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-list.js.map +1 -1
- package/dist/esm/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-set.d.ts.map +1 -1
- package/dist/esm/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-set.js +11 -51
- package/dist/esm/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-set.js.map +1 -1
- package/dist/esm/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-sorted-set.d.ts.map +1 -1
- package/dist/esm/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-sorted-set.js +9 -41
- package/dist/esm/src/lib/queue-messages/queue-messages-storage/queue-messages-storage-sorted-set.js.map +1 -1
- package/dist/esm/src/lib/queue-rate-limit/queue-rate-limit.d.ts.map +1 -1
- package/dist/esm/src/lib/queue-rate-limit/queue-rate-limit.js +17 -73
- package/dist/esm/src/lib/queue-rate-limit/queue-rate-limit.js.map +1 -1
- package/package.json +2 -2
- package/dist/cjs/src/common/redis-client/scripts/lua/cleanup-offline-consumer.lua +0 -33
- package/dist/cjs/src/common/redis-client/scripts/lua/delete-queue-messages.lua +0 -21
- package/dist/cjs/src/lib/event-bus/errors/event-bus-instance-lock.error.d.ts +0 -4
- package/dist/cjs/src/lib/event-bus/errors/event-bus-instance-lock.error.d.ts.map +0 -1
- package/dist/cjs/src/lib/event-bus/errors/event-bus-instance-lock.error.js +0 -8
- package/dist/cjs/src/lib/event-bus/errors/event-bus-instance-lock.error.js.map +0 -1
- package/dist/cjs/src/lib/event-bus/errors/index.d.ts +0 -2
- package/dist/cjs/src/lib/event-bus/errors/index.d.ts.map +0 -1
- package/dist/cjs/src/lib/event-bus/errors/index.js +0 -6
- package/dist/cjs/src/lib/event-bus/errors/index.js.map +0 -1
- package/dist/cjs/src/lib/event-bus/event-bus.d.ts +0 -11
- package/dist/cjs/src/lib/event-bus/event-bus.d.ts.map +0 -1
- package/dist/cjs/src/lib/event-bus/event-bus.js +0 -58
- package/dist/cjs/src/lib/event-bus/event-bus.js.map +0 -1
- package/dist/cjs/src/lib/event-bus/index.d.ts +0 -4
- package/dist/cjs/src/lib/event-bus/index.d.ts.map +0 -1
- package/dist/cjs/src/lib/event-bus/index.js +0 -20
- package/dist/cjs/src/lib/event-bus/index.js.map +0 -1
- package/dist/cjs/src/lib/event-bus/types/config.d.ts +0 -4
- package/dist/cjs/src/lib/event-bus/types/config.d.ts.map +0 -1
- package/dist/cjs/src/lib/event-bus/types/config.js.map +0 -1
- package/dist/cjs/src/lib/event-bus/types/index.d.ts +0 -2
- package/dist/cjs/src/lib/event-bus/types/index.d.ts.map +0 -1
- package/dist/cjs/src/lib/event-bus/types/index.js +0 -18
- package/dist/cjs/src/lib/event-bus/types/index.js.map +0 -1
- package/dist/esm/src/common/redis-client/scripts/lua/cleanup-offline-consumer.lua +0 -33
- package/dist/esm/src/common/redis-client/scripts/lua/delete-queue-messages.lua +0 -21
- package/dist/esm/src/lib/event-bus/errors/event-bus-instance-lock.error.d.ts +0 -4
- package/dist/esm/src/lib/event-bus/errors/event-bus-instance-lock.error.d.ts.map +0 -1
- package/dist/esm/src/lib/event-bus/errors/event-bus-instance-lock.error.js +0 -4
- package/dist/esm/src/lib/event-bus/errors/event-bus-instance-lock.error.js.map +0 -1
- package/dist/esm/src/lib/event-bus/errors/index.d.ts +0 -2
- package/dist/esm/src/lib/event-bus/errors/index.d.ts.map +0 -1
- package/dist/esm/src/lib/event-bus/errors/index.js +0 -2
- package/dist/esm/src/lib/event-bus/errors/index.js.map +0 -1
- package/dist/esm/src/lib/event-bus/event-bus.d.ts +0 -11
- package/dist/esm/src/lib/event-bus/event-bus.d.ts.map +0 -1
- package/dist/esm/src/lib/event-bus/event-bus.js +0 -51
- package/dist/esm/src/lib/event-bus/event-bus.js.map +0 -1
- package/dist/esm/src/lib/event-bus/index.d.ts +0 -4
- package/dist/esm/src/lib/event-bus/index.d.ts.map +0 -1
- package/dist/esm/src/lib/event-bus/index.js +0 -4
- package/dist/esm/src/lib/event-bus/index.js.map +0 -1
- package/dist/esm/src/lib/event-bus/types/config.d.ts +0 -4
- package/dist/esm/src/lib/event-bus/types/config.d.ts.map +0 -1
- package/dist/esm/src/lib/event-bus/types/config.js +0 -2
- package/dist/esm/src/lib/event-bus/types/config.js.map +0 -1
- package/dist/esm/src/lib/event-bus/types/index.d.ts +0 -2
- package/dist/esm/src/lib/event-bus/types/index.d.ts.map +0 -1
- package/dist/esm/src/lib/event-bus/types/index.js +0 -2
- package/dist/esm/src/lib/event-bus/types/index.js.map +0 -1
|
@@ -14,7 +14,7 @@ class QueueRateLimit {
|
|
|
14
14
|
constructor() {
|
|
15
15
|
this.shutdown = (cb) => {
|
|
16
16
|
this.logger.debug('Shutting down QueueRateLimit');
|
|
17
|
-
redis_smq_common_1.async.
|
|
17
|
+
redis_smq_common_1.async.series([this.queue.shutdown, this.redisClient.shutdown], (err) => {
|
|
18
18
|
if (err) {
|
|
19
19
|
this.logger.error(`Error during shutdown: ${err.message}`);
|
|
20
20
|
return cb(err);
|
|
@@ -33,25 +33,9 @@ class QueueRateLimit {
|
|
|
33
33
|
clear(queue, cb) {
|
|
34
34
|
const queueName = typeof queue === 'string' ? queue : `${queue.name}@${queue.ns}`;
|
|
35
35
|
this.logger.debug(`Clearing rate limit for queue: ${queueName}`);
|
|
36
|
-
this.redisClient
|
|
37
|
-
if (err) {
|
|
38
|
-
this.logger.error(`Failed to get Redis client instance: ${err.message}`);
|
|
39
|
-
return cb(err);
|
|
40
|
-
}
|
|
41
|
-
if (!client) {
|
|
42
|
-
this.logger.error('Redis client instance is empty');
|
|
43
|
-
return cb(new redis_smq_common_1.CallbackEmptyReplyError());
|
|
44
|
-
}
|
|
36
|
+
(0, redis_smq_common_1.withRedisClient)(this.redisClient, (client, cb) => {
|
|
45
37
|
this.logger.debug(`Validating queue parameters for: ${queueName}`);
|
|
46
|
-
(0, _parse_queue_params_and_validate_js_1._parseQueueParamsAndValidate)(client, queue, (
|
|
47
|
-
if (err) {
|
|
48
|
-
this.logger.error(`Failed to validate queue parameters: ${err.message}`);
|
|
49
|
-
return cb(err);
|
|
50
|
-
}
|
|
51
|
-
if (!queueParams) {
|
|
52
|
-
this.logger.error('Queue parameters validation returned empty result');
|
|
53
|
-
return cb(new redis_smq_common_1.CallbackEmptyReplyError());
|
|
54
|
-
}
|
|
38
|
+
redis_smq_common_1.async.withCallback((cb) => (0, _parse_queue_params_and_validate_js_1._parseQueueParamsAndValidate)(client, queue, cb), (queueParams, cb) => {
|
|
55
39
|
const { keyQueueProperties, keyQueueRateLimitCounter } = redis_keys_js_1.redisKeys.getQueueKeys(queueParams, null);
|
|
56
40
|
this.logger.debug(`Clearing rate limit for queue ${queueParams.name}@${queueParams.ns} using keys: ${keyQueueProperties}, ${keyQueueRateLimitCounter}`);
|
|
57
41
|
const multi = client.multi();
|
|
@@ -65,21 +49,13 @@ class QueueRateLimit {
|
|
|
65
49
|
this.logger.info(`Successfully cleared rate limit for queue: ${queueParams.name}@${queueParams.ns}`);
|
|
66
50
|
cb();
|
|
67
51
|
});
|
|
68
|
-
});
|
|
69
|
-
});
|
|
52
|
+
}, cb);
|
|
53
|
+
}, cb);
|
|
70
54
|
}
|
|
71
55
|
set(queue, rateLimit, cb) {
|
|
72
56
|
const queueName = typeof queue === 'string' ? queue : `${queue.name}@${queue.ns}`;
|
|
73
57
|
this.logger.debug(`Setting rate limit for queue: ${queueName}, limit: ${rateLimit.limit}, interval: ${rateLimit.interval}ms`);
|
|
74
|
-
this.redisClient
|
|
75
|
-
if (err) {
|
|
76
|
-
this.logger.error(`Failed to get Redis client instance: ${err.message}`);
|
|
77
|
-
return cb(err);
|
|
78
|
-
}
|
|
79
|
-
if (!client) {
|
|
80
|
-
this.logger.error('Redis client instance is empty');
|
|
81
|
-
return cb(new redis_smq_common_1.CallbackEmptyReplyError());
|
|
82
|
-
}
|
|
58
|
+
(0, redis_smq_common_1.withRedisClient)(this.redisClient, (client, cb) => {
|
|
83
59
|
this.logger.debug(`Validating queue parameters for: ${queueName}`);
|
|
84
60
|
(0, _parse_queue_params_and_validate_js_1._parseQueueParamsAndValidate)(client, queue, (err, queueParams) => {
|
|
85
61
|
if (err) {
|
|
@@ -117,20 +93,12 @@ class QueueRateLimit {
|
|
|
117
93
|
cb();
|
|
118
94
|
});
|
|
119
95
|
});
|
|
120
|
-
});
|
|
96
|
+
}, cb);
|
|
121
97
|
}
|
|
122
98
|
hasExceeded(queue, rateLimit, cb) {
|
|
123
99
|
const queueName = typeof queue === 'string' ? queue : `${queue.name}@${queue.ns}`;
|
|
124
100
|
this.logger.debug(`Checking if rate limit exceeded for queue: ${queueName}, limit: ${rateLimit.limit}, interval: ${rateLimit.interval}ms`);
|
|
125
|
-
this.redisClient
|
|
126
|
-
if (err) {
|
|
127
|
-
this.logger.error(`Failed to get Redis client instance: ${err.message}`);
|
|
128
|
-
return cb(err);
|
|
129
|
-
}
|
|
130
|
-
if (!client) {
|
|
131
|
-
this.logger.error('Redis client instance is empty');
|
|
132
|
-
return cb(new redis_smq_common_1.CallbackEmptyReplyError());
|
|
133
|
-
}
|
|
101
|
+
(0, redis_smq_common_1.withRedisClient)(this.redisClient, (client, cb) => {
|
|
134
102
|
this.logger.debug(`Validating queue parameters for: ${queueName}`);
|
|
135
103
|
(0, _parse_queue_params_and_validate_js_1._parseQueueParamsAndValidate)(client, queue, (err, queueParams) => {
|
|
136
104
|
if (err) {
|
|
@@ -151,30 +119,14 @@ class QueueRateLimit {
|
|
|
151
119
|
cb(null, hasExceeded);
|
|
152
120
|
});
|
|
153
121
|
});
|
|
154
|
-
});
|
|
122
|
+
}, cb);
|
|
155
123
|
}
|
|
156
124
|
get(queue, cb) {
|
|
157
125
|
const queueName = typeof queue === 'string' ? queue : `${queue.name}@${queue.ns}`;
|
|
158
126
|
this.logger.debug(`Getting rate limit for queue: ${queueName}`);
|
|
159
|
-
this.redisClient
|
|
160
|
-
if (err) {
|
|
161
|
-
this.logger.error(`Failed to get Redis client instance: ${err.message}`);
|
|
162
|
-
return cb(err);
|
|
163
|
-
}
|
|
164
|
-
if (!client) {
|
|
165
|
-
this.logger.error('Redis client instance is empty');
|
|
166
|
-
return cb(new redis_smq_common_1.CallbackEmptyReplyError());
|
|
167
|
-
}
|
|
127
|
+
(0, redis_smq_common_1.withRedisClient)(this.redisClient, (client, cb) => {
|
|
168
128
|
this.logger.debug(`Validating queue parameters for: ${queueName}`);
|
|
169
|
-
(0, _parse_queue_params_and_validate_js_1._parseQueueParamsAndValidate)(client, queue, (
|
|
170
|
-
if (err) {
|
|
171
|
-
this.logger.error(`Failed to validate queue parameters: ${err.message}`);
|
|
172
|
-
return cb(err);
|
|
173
|
-
}
|
|
174
|
-
if (!queueParams) {
|
|
175
|
-
this.logger.error('Queue parameters validation returned empty result');
|
|
176
|
-
return cb(new redis_smq_common_1.CallbackEmptyReplyError());
|
|
177
|
-
}
|
|
129
|
+
redis_smq_common_1.async.withCallback((cb) => (0, _parse_queue_params_and_validate_js_1._parseQueueParamsAndValidate)(client, queue, cb), (queueParams, cb) => {
|
|
178
130
|
const { keyQueueProperties } = redis_keys_js_1.redisKeys.getQueueKeys(queueParams, null);
|
|
179
131
|
this.logger.debug(`Getting rate limit using key: ${keyQueueProperties}`);
|
|
180
132
|
client.hget(keyQueueProperties, String(index_js_2.EQueueProperty.RATE_LIMIT), (err, reply) => {
|
|
@@ -186,20 +138,12 @@ class QueueRateLimit {
|
|
|
186
138
|
this.logger.debug(`No rate limit found for queue: ${queueParams.name}@${queueParams.ns}`);
|
|
187
139
|
return cb(null, null);
|
|
188
140
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
cb(null, rateLimit);
|
|
193
|
-
}
|
|
194
|
-
catch (error) {
|
|
195
|
-
this.logger.error(`Failed to parse rate limit JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
196
|
-
cb(error instanceof Error
|
|
197
|
-
? error
|
|
198
|
-
: new Error(`Failed to parse rate limit JSON: ${error}`));
|
|
199
|
-
}
|
|
141
|
+
const rateLimit = JSON.parse(reply);
|
|
142
|
+
this.logger.debug(`Retrieved rate limit for queue ${queueParams.name}@${queueParams.ns}: limit: ${rateLimit.limit}, interval: ${rateLimit.interval}ms`);
|
|
143
|
+
cb(null, rateLimit);
|
|
200
144
|
});
|
|
201
|
-
});
|
|
202
|
-
});
|
|
145
|
+
}, cb);
|
|
146
|
+
}, cb);
|
|
203
147
|
}
|
|
204
148
|
}
|
|
205
149
|
exports.QueueRateLimit = QueueRateLimit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-rate-limit.js","sourceRoot":"","sources":["../../../../../src/lib/queue-rate-limit/queue-rate-limit.ts"],"names":[],"mappings":";;;AASA,
|
|
1
|
+
{"version":3,"file":"queue-rate-limit.js","sourceRoot":"","sources":["../../../../../src/lib/queue-rate-limit/queue-rate-limit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../../../../src/common/event-bus/event-bus.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,QAAS,SAAQ,oBAAoB,CAAC,cAAc,CAAC;;CAKjE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EventBusRedisFactory } from 'redis-smq-common';
|
|
2
|
+
import { Configuration } from '../../config/index.js';
|
|
3
|
+
export class EventBus extends EventBusRedisFactory {
|
|
4
|
+
constructor() {
|
|
5
|
+
const config = Configuration.getSetConfig();
|
|
6
|
+
super(config.redis);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=event-bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../../../src/common/event-bus/event-bus.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,MAAM,OAAO,QAAS,SAAQ,oBAAoC;IAChE;QACE,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC;QAC5C,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/common/index.ts"],"names":[],"mappings":"AASA,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/common/index.ts"],"names":[],"mappings":"AASA,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/index.ts"],"names":[],"mappings":"AASA,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/index.ts"],"names":[],"mappings":"AASA,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare class RedisClient extends
|
|
3
|
-
|
|
4
|
-
protected
|
|
5
|
-
protected createClient(config: IRedisConfig, cb: ICallback<IRedisClient>): void;
|
|
6
|
-
init: (cb: ICallback<void>) => void;
|
|
7
|
-
getSetInstance: (cb: ICallback<IRedisClient>) => void;
|
|
8
|
-
shutdown: (cb: ICallback<void>) => void;
|
|
9
|
-
getInstance(): IRedisClient | Error;
|
|
1
|
+
import { ICallback, IRedisClient, IRedisConfig, RedisClientFactory } from 'redis-smq-common';
|
|
2
|
+
export declare class RedisClient extends RedisClientFactory {
|
|
3
|
+
constructor(cfg?: IRedisConfig);
|
|
4
|
+
protected setupClient(client: IRedisClient, cb: ICallback<IRedisClient>): void;
|
|
10
5
|
}
|
|
11
6
|
//# sourceMappingURL=redis-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-client.d.ts","sourceRoot":"","sources":["../../../../../src/common/redis-client/redis-client.ts"],"names":[],"mappings":"AASA,OAAO,
|
|
1
|
+
{"version":3,"file":"redis-client.d.ts","sourceRoot":"","sources":["../../../../../src/common/redis-client/redis-client.ts"],"names":[],"mappings":"AASA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAI1B,qBAAa,WAAY,SAAQ,kBAAkB;gBACrC,GAAG,CAAC,EAAE,YAAY;cAKX,WAAW,CAC5B,MAAM,EAAE,YAAY,EACpB,EAAE,EAAE,SAAS,CAAC,YAAY,CAAC;CAO9B"}
|
|
@@ -1,61 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RedisClientFactory, } from 'redis-smq-common';
|
|
2
2
|
import { Configuration } from '../../config/index.js';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
import { scriptFileMap } from './scripts/scripts.js';
|
|
4
|
+
export class RedisClient extends RedisClientFactory {
|
|
5
|
+
constructor(cfg) {
|
|
6
|
+
const config = cfg ?? Configuration.getSetConfig().redis;
|
|
7
|
+
super(config);
|
|
8
|
+
}
|
|
9
|
+
setupClient(client, cb) {
|
|
10
|
+
client.loadScriptFiles(scriptFileMap, (err) => {
|
|
10
11
|
if (err)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return cb(new CallbackEmptyReplyError());
|
|
14
|
-
loadScriptFiles(client, (err) => {
|
|
15
|
-
if (err)
|
|
16
|
-
return cb(err);
|
|
17
|
-
cb(null, client);
|
|
18
|
-
});
|
|
12
|
+
cb(err);
|
|
13
|
+
cb(null, client);
|
|
19
14
|
});
|
|
20
15
|
}
|
|
21
|
-
init = (cb) => {
|
|
22
|
-
this.getSetInstance((err) => cb(err));
|
|
23
|
-
};
|
|
24
|
-
getSetInstance = (cb) => {
|
|
25
|
-
if (!this.locked) {
|
|
26
|
-
if (!this.instance) {
|
|
27
|
-
this.locked = true;
|
|
28
|
-
this.createClient(Configuration.getSetConfig().redis, (err, client) => {
|
|
29
|
-
this.locked = false;
|
|
30
|
-
if (err)
|
|
31
|
-
return cb(err);
|
|
32
|
-
if (!client)
|
|
33
|
-
return cb(new CallbackEmptyReplyError());
|
|
34
|
-
this.instance = client;
|
|
35
|
-
this.instance.on('error', (err) => this.emit('error', err));
|
|
36
|
-
cb(null, this.instance);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
else
|
|
40
|
-
cb(null, this.instance);
|
|
41
|
-
}
|
|
42
|
-
else
|
|
43
|
-
cb(new RedisClientInstanceLockError());
|
|
44
|
-
};
|
|
45
|
-
shutdown = (cb) => {
|
|
46
|
-
if (this.instance) {
|
|
47
|
-
this.instance.halt(() => {
|
|
48
|
-
this.instance = null;
|
|
49
|
-
cb();
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
else
|
|
53
|
-
cb();
|
|
54
|
-
};
|
|
55
|
-
getInstance() {
|
|
56
|
-
if (!this.instance)
|
|
57
|
-
return new PanicError(`Use first getSetInstance() to initialize the RedisClientInstance class`);
|
|
58
|
-
return this.instance;
|
|
59
|
-
}
|
|
60
16
|
}
|
|
61
17
|
//# sourceMappingURL=redis-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-client.js","sourceRoot":"","sources":["../../../../../src/common/redis-client/redis-client.ts"],"names":[],"mappings":"AASA,OAAO,
|
|
1
|
+
{"version":3,"file":"redis-client.js","sourceRoot":"","sources":["../../../../../src/common/redis-client/redis-client.ts"],"names":[],"mappings":"AASA,OAAO,EAIL,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,WAAY,SAAQ,kBAAkB;IACjD,YAAY,GAAkB;QAC5B,MAAM,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;QACzD,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAEkB,WAAW,CAC5B,MAAoB,EACpB,EAA2B;QAE3B,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;YAC5C,IAAI,GAAG;gBAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -2,27 +2,38 @@ local keyQueueProcessing = KEYS[1]
|
|
|
2
2
|
local keyQueueAcknowledged = KEYS[2]
|
|
3
3
|
local keyMessage = KEYS[3]
|
|
4
4
|
|
|
5
|
-
---
|
|
6
|
-
|
|
7
5
|
local EMessagePropertyStatus = ARGV[1]
|
|
8
6
|
local EMessagePropertyStatusAcknowledged = ARGV[2]
|
|
9
7
|
local storeMessages = ARGV[3]
|
|
10
8
|
local expireStoredMessages = ARGV[4]
|
|
11
9
|
local storedMessagesSize = ARGV[5]
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
-- Get the message ID from the processing queue
|
|
12
|
+
local messageId = redis.call("LPOP", keyQueueProcessing)
|
|
13
|
+
|
|
14
|
+
-- If no message was found, return early
|
|
15
|
+
if messageId == false then
|
|
16
|
+
return nil
|
|
15
17
|
end
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
-- Update message status immediately
|
|
20
|
+
redis.call("HSET", keyMessage, EMessagePropertyStatus, EMessagePropertyStatusAcknowledged)
|
|
21
|
+
|
|
22
|
+
-- Only perform storage operations if needed
|
|
18
23
|
if storeMessages == '1' then
|
|
24
|
+
-- Add to acknowledged queue
|
|
19
25
|
redis.call("RPUSH", keyQueueAcknowledged, messageId)
|
|
26
|
+
|
|
27
|
+
-- Apply expiration if configured
|
|
20
28
|
if expireStoredMessages ~= '0' then
|
|
21
29
|
redis.call("PEXPIRE", keyQueueAcknowledged, expireStoredMessages)
|
|
22
30
|
end
|
|
31
|
+
|
|
32
|
+
-- Trim the queue if size limit is set
|
|
23
33
|
if storedMessagesSize ~= '0' then
|
|
24
|
-
|
|
25
|
-
|
|
34
|
+
-- storedMessagesSize should be negative for proper trimming (to keep newest messages)
|
|
35
|
+
redis.call("LTRIM", keyQueueAcknowledged, storedMessagesSize, -1)
|
|
26
36
|
end
|
|
27
37
|
end
|
|
28
|
-
|
|
38
|
+
|
|
39
|
+
return messageId
|
|
@@ -3,8 +3,6 @@ local keyNsQueues = KEYS[2]
|
|
|
3
3
|
local keyQueues = KEYS[3]
|
|
4
4
|
local keyQueueProperties = KEYS[4]
|
|
5
5
|
|
|
6
|
-
---
|
|
7
|
-
|
|
8
6
|
local namespace = ARGV[1]
|
|
9
7
|
local queue = ARGV[2]
|
|
10
8
|
local queuePropertiesQueueType = ARGV[3]
|
|
@@ -12,12 +10,19 @@ local queueType = ARGV[4]
|
|
|
12
10
|
local queuePropertiesQueueDeliveryModel = ARGV[5]
|
|
13
11
|
local deliveryModel = ARGV[6]
|
|
14
12
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
redis.call("SADD", keyNamespaces, namespace)
|
|
19
|
-
redis.call("HSET", keyQueueProperties, queuePropertiesQueueType, queueType)
|
|
20
|
-
redis.call("HSET", keyQueueProperties, queuePropertiesQueueDeliveryModel, deliveryModel)
|
|
21
|
-
return 'OK'
|
|
13
|
+
-- Check if queue already exists
|
|
14
|
+
if redis.call("SISMEMBER", keyQueues, queue) == 1 then
|
|
15
|
+
return 'QUEUE_EXISTS'
|
|
22
16
|
end
|
|
23
|
-
|
|
17
|
+
|
|
18
|
+
--
|
|
19
|
+
redis.call("SADD", keyQueues, queue)
|
|
20
|
+
redis.call("SADD", keyNsQueues, queue)
|
|
21
|
+
redis.call("SADD", keyNamespaces, namespace)
|
|
22
|
+
|
|
23
|
+
--
|
|
24
|
+
redis.call("HSET", keyQueueProperties,
|
|
25
|
+
queuePropertiesQueueType, queueType,
|
|
26
|
+
queuePropertiesQueueDeliveryModel, deliveryModel)
|
|
27
|
+
|
|
28
|
+
return 'OK'
|
|
@@ -9,26 +9,37 @@ local typeLIFOQueue = ARGV[3]
|
|
|
9
9
|
local typeFIFOQueue = ARGV[4]
|
|
10
10
|
local groupId = ARGV[5]
|
|
11
11
|
|
|
12
|
+
-- Get queue type once and validate it exists
|
|
12
13
|
local queueType = redis.call("HGET", keyQueueProperties, queuePropertiesQueueType)
|
|
13
14
|
if queueType == false then
|
|
14
15
|
return 'QUEUE_NOT_FOUND'
|
|
15
16
|
end
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
-- Determine which key to check based on queue type (only once)
|
|
19
|
+
local pendingKey
|
|
18
20
|
if queueType == typePriorityQueue then
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
pendingKey = keyQueuePendingPriority
|
|
22
|
+
else
|
|
23
|
+
pendingKey = keyQueuePending
|
|
22
24
|
end
|
|
25
|
+
|
|
26
|
+
-- Check if the queue is empty using the appropriate command
|
|
27
|
+
local count = 0
|
|
28
|
+
if queueType == typePriorityQueue then
|
|
29
|
+
count = redis.call("ZCARD", pendingKey)
|
|
30
|
+
else
|
|
31
|
+
count = redis.call("LLEN", pendingKey)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
-- Return early if the queue is not empty
|
|
23
35
|
if count > 0 then
|
|
24
36
|
return 'CONSUMER_GROUP_NOT_EMPTY'
|
|
25
37
|
end
|
|
26
38
|
|
|
39
|
+
-- Remove the consumer group
|
|
27
40
|
redis.call("SREM", keyQueueConsumerGroups, groupId)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
redis.call("DEL", keyQueuePending)
|
|
32
|
-
end
|
|
41
|
+
|
|
42
|
+
-- Delete the pending queue
|
|
43
|
+
redis.call("DEL", pendingKey)
|
|
33
44
|
|
|
34
45
|
return 'OK'
|