redis-smq 9.0.6-next.0 → 9.0.6-next.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.
Files changed (34) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/src/common/redis/redis-client/scripts/lua/clear-queue-rate-limit.lua +36 -0
  3. package/dist/cjs/src/common/redis/redis-client/scripts/scripts.d.ts +2 -1
  4. package/dist/cjs/src/common/redis/redis-client/scripts/scripts.d.ts.map +1 -1
  5. package/dist/cjs/src/common/redis/redis-client/scripts/scripts.js +2 -0
  6. package/dist/cjs/src/common/redis/redis-client/scripts/scripts.js.map +1 -1
  7. package/dist/cjs/src/config/configuration.d.ts +18 -9
  8. package/dist/cjs/src/config/configuration.d.ts.map +1 -1
  9. package/dist/cjs/src/config/configuration.js +190 -88
  10. package/dist/cjs/src/config/configuration.js.map +1 -1
  11. package/dist/cjs/src/queue-rate-limit/queue-rate-limit.d.ts.map +1 -1
  12. package/dist/cjs/src/queue-rate-limit/queue-rate-limit.js +9 -4
  13. package/dist/cjs/src/queue-rate-limit/queue-rate-limit.js.map +1 -1
  14. package/dist/cjs/src/redis-smq.d.ts +10 -6
  15. package/dist/cjs/src/redis-smq.d.ts.map +1 -1
  16. package/dist/cjs/src/redis-smq.js +149 -80
  17. package/dist/cjs/src/redis-smq.js.map +1 -1
  18. package/dist/esm/src/common/redis/redis-client/scripts/lua/clear-queue-rate-limit.lua +36 -0
  19. package/dist/esm/src/common/redis/redis-client/scripts/scripts.d.ts +2 -1
  20. package/dist/esm/src/common/redis/redis-client/scripts/scripts.d.ts.map +1 -1
  21. package/dist/esm/src/common/redis/redis-client/scripts/scripts.js +2 -0
  22. package/dist/esm/src/common/redis/redis-client/scripts/scripts.js.map +1 -1
  23. package/dist/esm/src/config/configuration.d.ts +18 -9
  24. package/dist/esm/src/config/configuration.d.ts.map +1 -1
  25. package/dist/esm/src/config/configuration.js +193 -87
  26. package/dist/esm/src/config/configuration.js.map +1 -1
  27. package/dist/esm/src/queue-rate-limit/queue-rate-limit.d.ts.map +1 -1
  28. package/dist/esm/src/queue-rate-limit/queue-rate-limit.js +10 -5
  29. package/dist/esm/src/queue-rate-limit/queue-rate-limit.js.map +1 -1
  30. package/dist/esm/src/redis-smq.d.ts +10 -6
  31. package/dist/esm/src/redis-smq.d.ts.map +1 -1
  32. package/dist/esm/src/redis-smq.js +150 -81
  33. package/dist/esm/src/redis-smq.js.map +1 -1
  34. package/package.json +2 -2
@@ -14,8 +14,16 @@ import { QueuePendingMessages } from './queue-pending-messages/index.js';
14
14
  import { QueueRateLimit } from './queue-rate-limit/index.js';
15
15
  import { MessageManager } from './message-manager/index.js';
16
16
  export declare class RedisSMQ {
17
- private static initialized;
17
+ private static state;
18
+ private static initWaiters;
19
+ private static shutdownWaiters;
18
20
  private static readonly components;
21
+ private static initInternal;
22
+ private static finishInitialization;
23
+ private static trackComponent;
24
+ private static shutdownComponents;
25
+ private static bootstrap;
26
+ private static ensureInitialized;
19
27
  static initialize(redisConfig: IRedisConfig, cb: ICallback): void;
20
28
  static initializeWithConfig(redisSMQConfig: IRedisSMQConfig, cb: ICallback): void;
21
29
  static createProducer(): Producer;
@@ -35,14 +43,10 @@ export declare class RedisSMQ {
35
43
  static createDirectExchange(): ExchangeDirect;
36
44
  static getConfigurationInstance(): Configuration;
37
45
  static isInitialized(): boolean;
38
- static reset(): void;
46
+ static reset(cb?: ICallback): void;
39
47
  static shutdown(cb: ICallback): void;
40
48
  static startProducer(cb: ICallback<boolean>): Producer;
41
49
  static startConsumer(enableMultiplexing: boolean, cb: ICallback<boolean>): Consumer;
42
50
  static startConsumer(cb: ICallback<boolean>): Consumer;
43
- private static trackComponent;
44
- private static shutdownComponents;
45
- private static bootstrap;
46
- private static ensureInitialized;
47
51
  }
48
52
  //# sourceMappingURL=redis-smq.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redis-smq.d.ts","sourceRoot":"","sources":["../../../src/redis-smq.ts"],"names":[],"mappings":"AASA,OAAO,EAAS,SAAS,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAoB5D,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAS;IAGnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAyB;IA4C3D,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI;IA4CjE,MAAM,CAAC,oBAAoB,CACzB,cAAc,EAAE,eAAe,EAC/B,EAAE,EAAE,SAAS,GACZ,IAAI;IAyBP,MAAM,CAAC,cAAc,IAAI,QAAQ;IAqBjC,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,OAAO,GAAG,QAAQ;IAoB7D,MAAM,CAAC,oBAAoB,IAAI,cAAc;IA2B7C,MAAM,CAAC,kBAAkB,IAAI,YAAY;IAoBzC,MAAM,CAAC,sBAAsB,IAAI,gBAAgB;IAoBjD,MAAM,CAAC,mBAAmB,IAAI,aAAa;IAoB3C,MAAM,CAAC,oBAAoB,IAAI,cAAc;IAoB7C,MAAM,CAAC,+BAA+B,IAAI,yBAAyB;IAoBnE,MAAM,CAAC,+BAA+B,IAAI,yBAAyB;IAoBnE,MAAM,CAAC,4BAA4B,IAAI,sBAAsB;IAoB7D,MAAM,CAAC,0BAA0B,IAAI,oBAAoB;IAoBzD,MAAM,CAAC,oBAAoB,IAAI,cAAc;IAiC7C,MAAM,CAAC,oBAAoB,IAAI,cAAc;IAoC7C,MAAM,CAAC,mBAAmB,IAAI,aAAa;IAoC3C,MAAM,CAAC,oBAAoB,IAAI,cAAc;IAW7C,MAAM,CAAC,wBAAwB,IAAI,aAAa;IAUhD,MAAM,CAAC,aAAa,IAAI,OAAO;IAQ/B,MAAM,CAAC,KAAK,IAAI,IAAI;IAmBpB,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IA8CpC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,QAAQ;IA2BtD,MAAM,CAAC,aAAa,CAClB,kBAAkB,EAAE,OAAO,EAC3B,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,GACrB,QAAQ;IAEX,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,QAAQ;IAyBtD,OAAO,CAAC,MAAM,CAAC,cAAc;IAM7B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAsBjC,OAAO,CAAC,MAAM,CAAC,SAAS;IA8BxB,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAOjC"}
1
+ {"version":3,"file":"redis-smq.d.ts","sourceRoot":"","sources":["../../../src/redis-smq.ts"],"names":[],"mappings":"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"}
@@ -20,17 +20,110 @@ const index_js_13 = require("./event-bus/index.js");
20
20
  const parse_redis_config_js_1 = require("./config/parse-redis-config.js");
21
21
  const redis_connection_pool_js_1 = require("./common/redis/redis-connection-pool/redis-connection-pool.js");
22
22
  function isDisposable(disposable) {
23
- return (disposable &&
23
+ return (!!disposable &&
24
+ typeof disposable === 'object' &&
24
25
  'shutdown' in disposable &&
25
26
  typeof disposable.shutdown === 'function');
26
27
  }
27
28
  class RedisSMQ {
29
+ static initInternal(resolveConfig, cb) {
30
+ if (this.state.isUp()) {
31
+ return cb();
32
+ }
33
+ if (this.state.isGoingUp()) {
34
+ RedisSMQ.initWaiters.push(cb);
35
+ return;
36
+ }
37
+ if (this.state.isGoingDown()) {
38
+ return cb(new redis_smq_common_1.PanicError('RedisSMQ is shutting down'));
39
+ }
40
+ try {
41
+ const { redisSMQConfig, redisConfig } = resolveConfig();
42
+ RedisSMQ.state.goingUp();
43
+ if (redisSMQConfig) {
44
+ RedisSMQ.bootstrap(redisConfig, redisSMQConfig, (err) => RedisSMQ.finishInitialization(err, cb));
45
+ }
46
+ else {
47
+ RedisSMQ.bootstrap(redisConfig, (err) => RedisSMQ.finishInitialization(err, cb));
48
+ }
49
+ }
50
+ catch (e) {
51
+ const err = e instanceof Error ? e : new redis_smq_common_1.PanicError(String(e));
52
+ return cb(err);
53
+ }
54
+ }
55
+ static finishInitialization(err, cb) {
56
+ if (err)
57
+ RedisSMQ.state.rollback();
58
+ else
59
+ RedisSMQ.state.commit();
60
+ const waiters = RedisSMQ.initWaiters.splice(0);
61
+ cb(err);
62
+ waiters.forEach((w) => w(err));
63
+ }
64
+ static trackComponent(instance) {
65
+ if (isDisposable(instance))
66
+ RedisSMQ.components.add(instance);
67
+ return instance;
68
+ }
69
+ static shutdownComponents(cb) {
70
+ const toShutdown = Array.from(RedisSMQ.components);
71
+ if (toShutdown.length === 0)
72
+ return cb();
73
+ let pending = toShutdown.length;
74
+ let firstErr = null;
75
+ toShutdown.forEach((comp) => {
76
+ try {
77
+ comp.shutdown((err) => {
78
+ if (err && !firstErr)
79
+ firstErr = err;
80
+ RedisSMQ.components.delete(comp);
81
+ if (--pending === 0)
82
+ cb(firstErr || null);
83
+ });
84
+ }
85
+ catch (e) {
86
+ if (!firstErr && e instanceof Error)
87
+ firstErr = e;
88
+ RedisSMQ.components.delete(comp);
89
+ if (--pending === 0)
90
+ cb(firstErr || null);
91
+ }
92
+ });
93
+ }
94
+ static bootstrap(redisConfig, redisSMQConfig, cb) {
95
+ const callback = cb !== null && cb !== void 0 ? cb : redisSMQConfig;
96
+ if (typeof callback !== 'function')
97
+ throw new redis_smq_common_1.PanicError('Invalid arguments: callback is required');
98
+ redis_smq_common_1.async.series([
99
+ (cb) => redis_connection_pool_js_1.RedisConnectionPool.initialize(redisConfig, {}, (err) => cb(err)),
100
+ (cb) => {
101
+ if (typeof redisSMQConfig === 'function')
102
+ return index_js_1.Configuration.initialize(cb);
103
+ index_js_1.Configuration.initializeWithConfig(redisSMQConfig, cb);
104
+ },
105
+ (cb) => {
106
+ const config = index_js_1.Configuration.getConfig();
107
+ if (config.eventBus.enabled) {
108
+ return index_js_13.EventBus.getInstance().run((err) => cb(err));
109
+ }
110
+ cb();
111
+ },
112
+ ], (err) => callback(err));
113
+ }
114
+ static ensureInitialized() {
115
+ if (!RedisSMQ.state.isRunning()) {
116
+ throw new redis_smq_common_1.PanicError('RedisSMQ is not initialized. Call RedisSMQ.initialize() first.');
117
+ }
118
+ }
28
119
  static initialize(redisConfig, cb) {
29
- RedisSMQ.bootstrap(redisConfig, (cb) => index_js_1.Configuration.initialize((err) => cb(err)), cb);
120
+ RedisSMQ.initInternal(() => ({ redisConfig }), cb);
30
121
  }
31
122
  static initializeWithConfig(redisSMQConfig, cb) {
32
- const redisConfig = (0, parse_redis_config_js_1.parseRedisConfig)(redisSMQConfig.redis);
33
- RedisSMQ.bootstrap(redisConfig, (cb) => index_js_1.Configuration.initializeWithConfig(redisSMQConfig, (err) => cb(err)), cb);
123
+ RedisSMQ.initInternal(() => ({
124
+ redisConfig: (0, parse_redis_config_js_1.parseRedisConfig)(redisSMQConfig.redis),
125
+ redisSMQConfig: redisSMQConfig,
126
+ }), cb);
34
127
  }
35
128
  static createProducer() {
36
129
  RedisSMQ.ensureInitialized();
@@ -97,30 +190,56 @@ class RedisSMQ {
97
190
  return index_js_1.Configuration.getInstance();
98
191
  }
99
192
  static isInitialized() {
100
- return RedisSMQ.initialized;
193
+ return RedisSMQ.state.isRunning();
101
194
  }
102
- static reset() {
103
- RedisSMQ.shutdown(() => void 0);
195
+ static reset(cb = () => void 0) {
196
+ if (RedisSMQ.state.isDown() && RedisSMQ.components.size === 0) {
197
+ return cb();
198
+ }
199
+ RedisSMQ.shutdown(cb);
104
200
  }
105
201
  static shutdown(cb) {
202
+ if (RedisSMQ.state.isGoingDown()) {
203
+ RedisSMQ.shutdownWaiters.push(cb);
204
+ return;
205
+ }
206
+ if (RedisSMQ.state.isGoingUp()) {
207
+ return cb(new redis_smq_common_1.PanicError('Cannot shutdown while initializing'));
208
+ }
209
+ if (RedisSMQ.state.isDown() && RedisSMQ.components.size === 0) {
210
+ return cb();
211
+ }
212
+ RedisSMQ.state.goingDown();
106
213
  const errors = [];
107
- RedisSMQ.shutdownComponents((compErr) => {
108
- if (compErr)
109
- errors.push(compErr);
110
- redis_connection_pool_js_1.RedisConnectionPool.shutdown((poolErr) => {
111
- if (poolErr)
112
- errors.push(poolErr);
113
- index_js_1.Configuration.shutdown((cfgErr) => {
114
- if (cfgErr)
115
- errors.push(cfgErr);
116
- index_js_13.EventBus.shutdown((eventBusErr) => {
117
- if (eventBusErr)
118
- errors.push(eventBusErr);
119
- RedisSMQ.initialized = false;
120
- cb(errors[0] || null);
121
- });
122
- });
123
- });
214
+ redis_smq_common_1.async.series([
215
+ (cb) => RedisSMQ.shutdownComponents((err) => {
216
+ if (err)
217
+ errors.push(err);
218
+ cb();
219
+ }),
220
+ (cb) => redis_connection_pool_js_1.RedisConnectionPool.shutdown((err) => {
221
+ if (err)
222
+ errors.push(err);
223
+ cb();
224
+ }),
225
+ (cb) => index_js_1.Configuration.shutdown((err) => {
226
+ if (err)
227
+ errors.push(err);
228
+ cb();
229
+ }),
230
+ (cb) => index_js_13.EventBus.shutdown((err) => {
231
+ if (err)
232
+ errors.push(err);
233
+ cb();
234
+ }),
235
+ ], () => {
236
+ RedisSMQ.state.commit();
237
+ RedisSMQ.initWaiters.splice(0);
238
+ const waiters = RedisSMQ.shutdownWaiters.splice(0);
239
+ RedisSMQ.components.clear();
240
+ const firstErr = errors[0] || null;
241
+ cb(firstErr);
242
+ waiters.forEach((w) => w(firstErr));
124
243
  });
125
244
  }
126
245
  static startProducer(cb) {
@@ -139,67 +258,17 @@ class RedisSMQ {
139
258
  enableMultiplexing = enableMultiplexingOrCb;
140
259
  callback = cb;
141
260
  }
142
- else
143
- throw new Error('Invalid arguments');
261
+ else {
262
+ throw new redis_smq_common_1.PanicError('Invalid arguments');
263
+ }
144
264
  const consumer = RedisSMQ.createConsumer(enableMultiplexing);
145
265
  consumer.run(callback);
146
266
  return consumer;
147
267
  }
148
- static trackComponent(instance) {
149
- if (isDisposable(instance))
150
- RedisSMQ.components.add(instance);
151
- return instance;
152
- }
153
- static shutdownComponents(cb) {
154
- const toShutdown = Array.from(RedisSMQ.components);
155
- if (toShutdown.length === 0)
156
- return cb();
157
- let pending = toShutdown.length;
158
- let firstErr = null;
159
- toShutdown.forEach((comp) => {
160
- try {
161
- comp.shutdown((err) => {
162
- if (err && !firstErr)
163
- firstErr = err;
164
- RedisSMQ.components.delete(comp);
165
- if (--pending === 0)
166
- cb(firstErr || null);
167
- });
168
- }
169
- catch (e) {
170
- if (!firstErr && e instanceof Error)
171
- firstErr = e;
172
- RedisSMQ.components.delete(comp);
173
- if (--pending === 0)
174
- cb(firstErr || null);
175
- }
176
- });
177
- }
178
- static bootstrap(redisConfig, configurationInit, cb) {
179
- redis_smq_common_1.async.series([
180
- (cb) => redis_connection_pool_js_1.RedisConnectionPool.initialize(redisConfig, {}, (err) => cb(err)),
181
- (cb) => configurationInit(cb),
182
- (cb) => {
183
- const config = index_js_1.Configuration.getConfig();
184
- if (config.eventBus.enabled) {
185
- return index_js_13.EventBus.getInstance().run((err) => cb(err));
186
- }
187
- cb();
188
- },
189
- ], (err) => {
190
- if (err)
191
- return cb(err);
192
- RedisSMQ.initialized = true;
193
- cb();
194
- });
195
- }
196
- static ensureInitialized() {
197
- if (!RedisSMQ.initialized) {
198
- throw new Error('RedisSMQ is not initialized. Call RedisSMQ.initialize() first.');
199
- }
200
- }
201
268
  }
202
269
  exports.RedisSMQ = RedisSMQ;
203
- RedisSMQ.initialized = false;
270
+ RedisSMQ.state = new redis_smq_common_1.PowerSwitch();
271
+ RedisSMQ.initWaiters = [];
272
+ RedisSMQ.shutdownWaiters = [];
204
273
  RedisSMQ.components = new Set();
205
274
  //# sourceMappingURL=redis-smq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redis-smq.js","sourceRoot":"","sources":["../../../src/redis-smq.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis-smq.js","sourceRoot":"","sources":["../../../src/redis-smq.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ --
2
+ -- Copyright (c)
3
+ -- Weyoss <weyoss@outlook.com>
4
+ -- https://github.com/weyoss
5
+ --
6
+ -- This source code is licensed under the MIT license found in the LICENSE file
7
+ -- in the root directory of this source tree.
8
+ --
9
+ -- Description:
10
+ -- Atomically clears the rate limit for a queue by removing its
11
+ -- configuration from the queue properties and deleting its counter.
12
+ --
13
+ -- Arguments:
14
+ -- KEYS[1]: The key for the queue properties hash.
15
+ -- KEYS[2]: The key for the queue rate limit counter.
16
+ --
17
+ -- ARGV[1]: The field name of the rate limit property to be deleted from the hash (e.g., 'rateLimit').
18
+ --
19
+ -- Returns:
20
+ -- OK: Success.
21
+ -- QUEUE_NOT_FOUND: Queue not found.
22
+ --
23
+
24
+ local keyQueueProperties = KEYS[1]
25
+ local keyQueueRateLimitCounter = KEYS[2]
26
+
27
+ local keyQueuePropertiesRateLimit = ARGV[1]
28
+
29
+ if redis.call("EXISTS", keyQueueProperties) == 0 then
30
+ return 'QUEUE_NOT_FOUND'
31
+ end
32
+
33
+ redis.call('HDEL', keyQueueProperties, keyQueuePropertiesRateLimit)
34
+ redis.call('DEL', keyQueueRateLimitCounter)
35
+
36
+ return 'OK'
@@ -13,7 +13,8 @@ export declare enum ELuaScriptName {
13
13
  CHECKOUT_MESSAGE = "CHECKOUT_MESSAGE",
14
14
  DELETE_CONSUMER_GROUP = "DELETE_CONSUMER_GROUP",
15
15
  SET_QUEUE_RATE_LIMIT = "SET_QUEUE_RATE_LIMIT",
16
- DELETE_QUEUE = "DELETE_QUEUE"
16
+ DELETE_QUEUE = "DELETE_QUEUE",
17
+ CLEAR_QUEUE_RATE_LIMIT = "CLEAR_QUEUE_RATE_LIMIT"
17
18
  }
18
19
  export declare const scriptFileMap: Record<ELuaScriptName, string | string[]>;
19
20
  //# sourceMappingURL=scripts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../../../../../../src/common/redis/redis-client/scripts/scripts.ts"],"names":[],"mappings":"AAYA,oBAAY,cAAc;IACxB,iBAAiB,sBAAsB;IACvC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,eAAe,oBAAoB;IACnC,sBAAsB,2BAA2B;IACjD,YAAY,iBAAiB;IAC7B,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,mBAAmB,wBAAwB;IAC3C,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,oBAAoB,yBAAyB;IAC7C,YAAY,iBAAiB;CAC9B;AAID,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAoDnE,CAAC"}
1
+ {"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../../../../../../src/common/redis/redis-client/scripts/scripts.ts"],"names":[],"mappings":"AAYA,oBAAY,cAAc;IACxB,iBAAiB,sBAAsB;IACvC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,eAAe,oBAAoB;IACnC,sBAAsB,2BAA2B;IACjD,YAAY,iBAAiB;IAC7B,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,mBAAmB,wBAAwB;IAC3C,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,oBAAoB,yBAAyB;IAC7C,YAAY,iBAAiB;IAC7B,sBAAsB,2BAA2B;CAClD;AAID,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAwDnE,CAAC"}
@@ -17,6 +17,7 @@ export var ELuaScriptName;
17
17
  ELuaScriptName["DELETE_CONSUMER_GROUP"] = "DELETE_CONSUMER_GROUP";
18
18
  ELuaScriptName["SET_QUEUE_RATE_LIMIT"] = "SET_QUEUE_RATE_LIMIT";
19
19
  ELuaScriptName["DELETE_QUEUE"] = "DELETE_QUEUE";
20
+ ELuaScriptName["CLEAR_QUEUE_RATE_LIMIT"] = "CLEAR_QUEUE_RATE_LIMIT";
20
21
  })(ELuaScriptName || (ELuaScriptName = {}));
21
22
  const dirname = env.getCurrentDir();
22
23
  export const scriptFileMap = {
@@ -44,5 +45,6 @@ export const scriptFileMap = {
44
45
  [ELuaScriptName.CHECK_QUEUE_RATE_LIMIT]: resolve(dirname, './lua/check-queue-rate-limit.lua'),
45
46
  [ELuaScriptName.SET_QUEUE_RATE_LIMIT]: resolve(dirname, './lua/set-queue-rate-limit.lua'),
46
47
  [ELuaScriptName.DELETE_QUEUE]: resolve(dirname, './lua/delete-queue.lua'),
48
+ [ELuaScriptName.CLEAR_QUEUE_RATE_LIMIT]: resolve(dirname, './lua/clear-queue-rate-limit.lua'),
47
49
  };
48
50
  //# sourceMappingURL=scripts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../../../../../src/common/redis/redis-client/scripts/scripts.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,CAAN,IAAY,cAgBX;AAhBD,WAAY,cAAc;IACxB,yDAAuC,CAAA;IACvC,qDAAmC,CAAA;IACnC,qDAAmC,CAAA;IACnC,yDAAuC,CAAA;IACvC,qDAAmC,CAAA;IACnC,mEAAiD,CAAA;IACjD,+CAA6B,CAAA;IAC7B,2DAAyC,CAAA;IACzC,iEAA+C,CAAA;IAC/C,6DAA2C,CAAA;IAC3C,mDAAiC,CAAA;IACjC,uDAAqC,CAAA;IACrC,iEAA+C,CAAA;IAC/C,+DAA6C,CAAA;IAC7C,+CAA6B,CAAA;AAC/B,CAAC,EAhBW,cAAc,KAAd,cAAc,QAgBzB;AAED,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;AAEpC,MAAM,CAAC,MAAM,aAAa,GAA8C;IACtE,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAClC,OAAO,CAAC,OAAO,EAAE,6CAA6C,CAAC;QAC/D,OAAO,CAAC,OAAO,EAAE,6BAA6B,CAAC;KAChD;IACD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE;QAChC,OAAO,CAAC,OAAO,EAAE,6CAA6C,CAAC;QAC/D,OAAO,CAAC,OAAO,EAAE,2BAA2B,CAAC;KAC9C;IACD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE;QAChC,OAAO,CAAC,OAAO,EAAE,6CAA6C,CAAC;QAC/D,OAAO,CAAC,OAAO,EAAE,2BAA2B,CAAC;KAC9C;IACD,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,OAAO,CACzC,OAAO,EACP,6BAA6B,CAC9B;IACD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,OAAO,CACvC,OAAO,EACP,2BAA2B,CAC5B;IACD,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,wBAAwB,CAAC;IACzE,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAC1C,OAAO,EACP,8BAA8B,CAC/B;IACD,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAC7C,OAAO,EACP,iCAAiC,CAClC;IACD,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAC3C,OAAO,EACP,+BAA+B,CAChC;IACD,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7E,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,OAAO,CACxC,OAAO,EACP,4BAA4B,CAC7B;IACD,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAC7C,OAAO,EACP,iCAAiC,CAClC;IACD,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAC9C,OAAO,EACP,kCAAkC,CACnC;IACD,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAC5C,OAAO,EACP,gCAAgC,CACjC;IACD,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,wBAAwB,CAAC;CAC1E,CAAC"}
1
+ {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../../../../../src/common/redis/redis-client/scripts/scripts.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,CAAN,IAAY,cAiBX;AAjBD,WAAY,cAAc;IACxB,yDAAuC,CAAA;IACvC,qDAAmC,CAAA;IACnC,qDAAmC,CAAA;IACnC,yDAAuC,CAAA;IACvC,qDAAmC,CAAA;IACnC,mEAAiD,CAAA;IACjD,+CAA6B,CAAA;IAC7B,2DAAyC,CAAA;IACzC,iEAA+C,CAAA;IAC/C,6DAA2C,CAAA;IAC3C,mDAAiC,CAAA;IACjC,uDAAqC,CAAA;IACrC,iEAA+C,CAAA;IAC/C,+DAA6C,CAAA;IAC7C,+CAA6B,CAAA;IAC7B,mEAAiD,CAAA;AACnD,CAAC,EAjBW,cAAc,KAAd,cAAc,QAiBzB;AAED,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;AAEpC,MAAM,CAAC,MAAM,aAAa,GAA8C;IACtE,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAClC,OAAO,CAAC,OAAO,EAAE,6CAA6C,CAAC;QAC/D,OAAO,CAAC,OAAO,EAAE,6BAA6B,CAAC;KAChD;IACD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE;QAChC,OAAO,CAAC,OAAO,EAAE,6CAA6C,CAAC;QAC/D,OAAO,CAAC,OAAO,EAAE,2BAA2B,CAAC;KAC9C;IACD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE;QAChC,OAAO,CAAC,OAAO,EAAE,6CAA6C,CAAC;QAC/D,OAAO,CAAC,OAAO,EAAE,2BAA2B,CAAC;KAC9C;IACD,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,OAAO,CACzC,OAAO,EACP,6BAA6B,CAC9B;IACD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,OAAO,CACvC,OAAO,EACP,2BAA2B,CAC5B;IACD,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,wBAAwB,CAAC;IACzE,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAC1C,OAAO,EACP,8BAA8B,CAC/B;IACD,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAC7C,OAAO,EACP,iCAAiC,CAClC;IACD,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAC3C,OAAO,EACP,+BAA+B,CAChC;IACD,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7E,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,OAAO,CACxC,OAAO,EACP,4BAA4B,CAC7B;IACD,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAC7C,OAAO,EACP,iCAAiC,CAClC;IACD,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAC9C,OAAO,EACP,kCAAkC,CACnC;IACD,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAC5C,OAAO,EACP,gCAAgC,CACjC;IACD,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,wBAAwB,CAAC;IACzE,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAC9C,OAAO,EACP,kCAAkC,CACnC;CACF,CAAC"}
@@ -1,21 +1,30 @@
1
- import { ICallback } from 'redis-smq-common';
1
+ import { ICallback, PowerSwitch } from 'redis-smq-common';
2
2
  import { IRedisSMQConfig, IRedisSMQParsedConfig } from './types/index.js';
3
3
  export declare class Configuration {
4
4
  protected static instance: Configuration | null;
5
+ protected static state: PowerSwitch;
6
+ protected static initializationQueue: Array<ICallback>;
7
+ protected operationInProgress: boolean;
8
+ protected operationQueue: Array<() => void>;
9
+ protected completionWaiters: Array<ICallback>;
5
10
  protected config: IRedisSMQParsedConfig;
6
11
  protected constructor();
12
+ private static validateInitializationState;
13
+ private static completeInitialization;
14
+ private static performInitialization;
7
15
  static getInstance(): Configuration;
8
16
  static getConfig(): IRedisSMQParsedConfig;
9
- static initialize(cb: ICallback<Configuration>): void;
17
+ static initialize(cb: ICallback): void;
10
18
  static initializeWithConfig(config: IRedisSMQConfig, cb: ICallback): void;
11
19
  static shutdown(cb: ICallback): void;
12
- load(cb: ICallback<IRedisSMQParsedConfig>): void;
13
- save(config: IRedisSMQConfig, cb: ICallback): void;
14
- saveCurrentConfig(cb: ICallback): void;
15
- reset(cb: ICallback): void;
20
+ protected runExclusive(fn: (done: ICallback) => void, done: ICallback): void;
21
+ protected flushOperationQueue(): void;
22
+ protected notifyCompletionWaiters(): void;
23
+ protected waitForOperationCompletion(cb: ICallback): void;
24
+ protected mergeConfig(current: IRedisSMQParsedConfig, updates: IRedisSMQConfig): IRedisSMQConfig;
16
25
  getConfig(): IRedisSMQParsedConfig;
17
- updateConfig(updates: IRedisSMQConfig, cb: ICallback<void>): void;
18
- exists(cb: ICallback<boolean>): void;
19
- protected saveConfig(config: IRedisSMQParsedConfig, cb: ICallback<void>): void;
26
+ load(cb: ICallback): void;
27
+ saveCurrentConfig(cb: ICallback): void;
28
+ updateConfig(updates: IRedisSMQConfig, cb: ICallback): void;
20
29
  }
21
30
  //# sourceMappingURL=configuration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../../src/config/configuration.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAwC1E,qBAAa,aAAa;IAExB,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAQ;IAMvD,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAiB;IAQxD,SAAS;IAkBT,MAAM,CAAC,WAAW,IAAI,aAAa;IAsBnC,MAAM,CAAC,SAAS,IAAI,qBAAqB;IA4BzC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI;IAgDrD,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI;IA2DzE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAkCpC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,qBAAqB,CAAC,GAAG,IAAI;IAuDhD,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI;IAkClD,iBAAiB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAItC,KAAK,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAyB1B,SAAS,IAAI,qBAAqB;IAgDlC,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI;IAoDjE,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI;IAUpC,SAAS,CAAC,UAAU,CAClB,MAAM,EAAE,qBAAqB,EAC7B,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,GAClB,IAAI;CAWR"}
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../../src/config/configuration.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAuC1E,qBAAa,aAAa;IAExB,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAQ;IAGvD,SAAS,CAAC,MAAM,CAAC,KAAK,cAAqB;IAG3C,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAM;IAG5D,SAAS,CAAC,mBAAmB,UAAS;IAGtC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAM;IAGjD,SAAS,CAAC,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAM;IAMnD,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAiB;IAQxD,SAAS;IAET,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAuB1C,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAgBrC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAgCpC,MAAM,CAAC,WAAW,IAAI,aAAa;IA2CnC,MAAM,CAAC,SAAS,IAAI,qBAAqB;IA4BzC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IA+CtC,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI;IAuCzE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAkCpC,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAkC5E,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAerC,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAWzC,SAAS,CAAC,0BAA0B,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAezD,SAAS,CAAC,WAAW,CACnB,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,eAAe,GACvB,eAAe;IAYlB,SAAS,IAAI,qBAAqB;IASlC,IAAI,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAoBzB,iBAAiB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAqCtC,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI;CAwB5D"}