power-queues 1.0.3 → 1.0.5

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.
@@ -1,17 +1,6 @@
1
1
  export declare class Processor {
2
- readonly defaultName: string;
3
- readonly timeoutCoefficient: number;
4
- readonly timeoutInitial: number;
5
- get name(): string;
6
- excecute(queueName: string, attemptIndex: number, data: any): Promise<any>;
7
- success(data: any): Promise<any>;
8
- successMethod(data: any): Promise<any>;
9
- timestamp(date?: Date): string;
10
- orderMethods(): Array<Function>;
11
- errorMethods(): Array<Function>;
12
- getMethods(): Array<Function>;
13
- getMethodsLength(): number;
14
- getMethod(index: number): Function;
15
- isErrorMethod(method: Function): boolean;
16
- attemptsTimeout(attemptIndex: number): number;
2
+ readonly name: string;
3
+ execute(queueName: string, attemptIndex: number, data: any): Promise<any>;
4
+ methods(): Array<Function>;
5
+ method(index: number): Function;
17
6
  }
package/dist/Processor.js CHANGED
@@ -2,61 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Processor = void 0;
4
4
  class Processor {
5
- constructor() {
6
- this.timeoutCoefficient = 3;
7
- this.timeoutInitial = 3000;
8
- }
9
- get name() {
10
- return this.defaultName ?? this.constructor.name;
11
- }
12
- async excecute(queueName, attemptIndex, data) {
13
- return data;
14
- }
15
- async success(data) {
5
+ async execute(queueName, attemptIndex, data) {
16
6
  return data;
17
7
  }
18
- async successMethod(data) {
19
- return data;
20
- }
21
- timestamp(date = new Date()) {
22
- const pad = (n) => String(n).padStart(2, '0');
23
- const year = date.getFullYear();
24
- const month = pad(date.getMonth() + 1);
25
- const day = pad(date.getDate());
26
- const hours = pad(date.getHours());
27
- const minutes = pad(date.getMinutes());
28
- const seconds = pad(date.getSeconds());
29
- return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
30
- }
31
- orderMethods() {
8
+ methods() {
32
9
  return [];
33
10
  }
34
- errorMethods() {
35
- return [];
36
- }
37
- getMethods() {
38
- return [...this.orderMethods()];
39
- }
40
- getMethodsLength() {
41
- return this.orderMethods().length;
42
- }
43
- getMethod(index) {
44
- return this.orderMethods()[index];
45
- }
46
- isErrorMethod(method) {
47
- return !!this.errorMethods().find((item) => item.name === method.name);
48
- }
49
- attemptsTimeout(attemptIndex) {
50
- const coefficient = this.timeoutCoefficient;
51
- let i = 0, timeout = this.timeoutInitial;
52
- while (i < attemptIndex) {
53
- timeout += (timeout * coefficient);
54
- i++;
55
- }
56
- if (timeout === 0) {
57
- timeout = this.timeoutInitial;
58
- }
59
- return timeout;
11
+ method(index) {
12
+ return this.methods()[index];
60
13
  }
61
14
  }
62
15
  exports.Processor = Processor;
@@ -1 +1 @@
1
- {"version":3,"file":"Processor.js","sourceRoot":"","sources":["../src/Processor.ts"],"names":[],"mappings":";;;AACA,MAAa,SAAS;IAAtB;QAEiB,uBAAkB,GAAW,CAAC,CAAC;QAC/B,mBAAc,GAAW,IAAI,CAAC;IAsE/C,CAAC;IApEA,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,YAAoB,EAAE,IAAS;QAChE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAS;QACtB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAS;QAC5B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,SAAS,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;QAC1B,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAEtD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAEvC,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;IACjE,CAAC;IAED,YAAY;QACX,OAAO,EAAE,CAAC;IACX,CAAC;IAED,YAAY;QACX,OAAO,EAAE,CAAC;IACX,CAAC;IAED,UAAU;QACT,OAAO,CAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAE,CAAC;IACnC,CAAC;IAED,gBAAgB;QACf,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,aAAa,CAAC,MAAgB;QAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,eAAe,CAAC,YAAoB;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC5C,IAAI,CAAC,GAAG,CAAC,EACR,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;QAE/B,OAAO,CAAC,GAAG,YAAY,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC;YACnC,CAAC,EAAE,CAAC;QACL,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;QAC/B,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;CACD;AAzED,8BAyEC"}
1
+ {"version":3,"file":"Processor.js","sourceRoot":"","sources":["../src/Processor.ts"],"names":[],"mappings":";;;AACA,MAAa,SAAS;IAGrB,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,YAAoB,EAAE,IAAS;QAC/D,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO;QACN,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,CAAC,KAAa;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACD;AAdD,8BAcC"}
package/dist/Queue.d.ts CHANGED
@@ -1,37 +1,30 @@
1
- import Redis from 'ioredis';
1
+ import { RedisManager } from './RedisManager';
2
+ import { Processor } from './Processor';
3
+ import { TaskInterface } from './types';
2
4
  export declare class Queue {
3
- protected readonly redis: Redis | null;
4
- protected readonly threadId: string;
5
- protected readonly timeout: number;
6
- protected readonly attempts: number;
7
- protected readonly displayLog: boolean;
8
- protected readonly displayError: boolean;
9
- protected readonly displayErrorObj: boolean;
10
- protected readonly displayErrorData: boolean;
11
- timestamp(date?: Date): string;
12
- queueKey(queueName: string, attemptIndex: number): string;
13
- readyKey(queueName: string, attemptIndex: number): string;
14
- start(queueName: string): void;
15
- listen(queueName: string): void;
16
- wait(timeout?: number): Promise<void>;
17
- attempt(queueName: string, attemptIndex: number): Promise<void>;
18
- process(queueName: string, attemptIndex: number): Promise<void>;
19
- processOne(queueName: string, attemptIndex: number): Promise<void>;
20
- retry(queueName: string, attemptIndex: number, data: any, err: any): Promise<number>;
21
- select(queueName: string, attemptIndex: number): Promise<any>;
22
- selectAfter(queueName: string, data: any): Promise<any>;
23
- allow(queueName: string, attemptIndex: number, data: any): Promise<boolean>;
24
- excecuteWrapper(queueName: string, attemptIndex: number, data: any): Promise<void>;
25
- excecute(queueName: string, attemptIndex: number, data: any): Promise<any>;
26
- successWrapper(queueName: string, attemptIndex: number, data: any): Promise<void>;
27
- success(queueName: string, attemptIndex: number, data: any): Promise<void>;
28
- errorWrapper(queueName: string, attemptIndex: number, data: any, err: any): Promise<void>;
29
- errorMessage(queueName: string, attemptIndex: number, data: any, err: any): Promise<void>;
30
- error(queueName: string, attemptIndex: number, data: any, err: any): Promise<void>;
31
- dropKeys(pattern: string, opts?: {
32
- count?: number;
33
- batch?: number;
34
- pauseMs?: number;
35
- useUnlink?: boolean;
36
- }): Promise<number>;
5
+ readonly redisManager: RedisManager;
6
+ readonly db: string;
7
+ readonly attempts: number;
8
+ readonly portionSize: number;
9
+ running: boolean;
10
+ private processors;
11
+ protected execute(queue: string, task: TaskInterface): Promise<any>;
12
+ protected beforeExecute(queue: string, task: TaskInterface): Promise<any>;
13
+ protected afterExecute(queue: string, task: TaskInterface, result: any): Promise<any>;
14
+ protected onSuccess(queue: string, task: TaskInterface, result: any): Promise<void>;
15
+ protected onError(queue: string, task: TaskInterface, err: any): Promise<void>;
16
+ protected onFatal(queue: string, task: TaskInterface, err: any): Promise<void>;
17
+ protected onStart(queue: string, task: TaskInterface): Promise<void>;
18
+ protected onEnd(queue: string, result: any): Promise<void>;
19
+ private process;
20
+ private loop;
21
+ protected retry(queue: string, task: TaskInterface): Promise<void>;
22
+ setProcessors(processors: Processor[]): this;
23
+ getProcessors(): Processor[];
24
+ getProcessor(name: string): Processor | null;
25
+ start(queue: string, attempt: number): void;
26
+ stop(): void;
27
+ key(name: string, attempt: number): string;
28
+ select(db: string, queue: string, attempt: number): Promise<TaskInterface[] | null>;
29
+ push(db: string, queue: string, task: TaskInterface): Promise<void>;
37
30
  }
package/dist/Queue.js CHANGED
@@ -1,172 +1,123 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Queue = void 0;
4
- const uuid_1 = require("uuid");
4
+ const full_utils_1 = require("full-utils");
5
5
  class Queue {
6
6
  constructor() {
7
- this.threadId = (0, uuid_1.v4)();
8
- this.timeout = 10;
9
- this.attempts = 1;
10
- this.displayLog = true;
11
- this.displayError = true;
12
- this.displayErrorObj = false;
13
- this.displayErrorData = false;
14
- }
15
- timestamp(date = new Date()) {
16
- const pad = (n) => String(n).padStart(2, '0');
17
- const year = date.getFullYear();
18
- const month = pad(date.getMonth() + 1);
19
- const day = pad(date.getDate());
20
- const hours = pad(date.getHours());
21
- const minutes = pad(date.getMinutes());
22
- const seconds = pad(date.getSeconds());
23
- return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
24
- }
25
- queueKey(queueName, attemptIndex) {
26
- return `queue.${queueName}.${attemptIndex}`;
27
- }
28
- readyKey(queueName, attemptIndex) {
29
- return `ready.${queueName}.${attemptIndex}`;
30
- }
31
- start(queueName) {
32
- this.listen(queueName);
33
- }
34
- listen(queueName) {
35
- let i = 0;
36
- while (i < this.attempts) {
37
- this.attempt(queueName, i);
38
- i++;
7
+ this.attempts = 3;
8
+ this.portionSize = 1;
9
+ this.running = false;
10
+ this.processors = [];
11
+ }
12
+ async execute(queue, task) {
13
+ const processor = this.getProcessor(task.processor);
14
+ if (!processor) {
15
+ throw new Error('Undefined processor.');
39
16
  }
17
+ return await processor.execute.call(processor, task);
40
18
  }
41
- async wait(timeout) {
42
- await new Promise((resolve) => setTimeout(resolve, timeout ?? this.timeout));
19
+ async beforeExecute(queue, task) {
20
+ return task;
43
21
  }
44
- async attempt(queueName, attemptIndex) {
45
- const readyKey = this.readyKey(queueName, attemptIndex);
46
- const threadId = this.threadId;
47
- await this.redis.rpush(readyKey, this.threadId);
48
- await this.wait();
49
- setImmediate(() => this.process(queueName, attemptIndex));
50
- return;
22
+ async afterExecute(queue, task, result) {
23
+ return result;
51
24
  }
52
- async process(queueName, attemptIndex) {
25
+ async onSuccess(queue, task, result) {
26
+ }
27
+ async onError(queue, task, err) {
28
+ }
29
+ async onFatal(queue, task, err) {
30
+ }
31
+ async onStart(queue, task) {
32
+ }
33
+ async onEnd(queue, result) {
34
+ }
35
+ async process(queue, task) {
36
+ let res;
53
37
  try {
54
- await this.processOne(queueName, attemptIndex);
38
+ await this.onStart(queue, task);
39
+ await this.onSuccess(queue, task, res = await this.afterExecute(queue, task, await this.execute(queue, await this.beforeExecute(queue, task))));
55
40
  }
56
41
  catch (err) {
57
- await this.errorWrapper(queueName, attemptIndex, null, err);
58
- }
59
- await this.wait();
60
- setImmediate(() => this.process(queueName, attemptIndex));
61
- return;
62
- }
63
- async processOne(queueName, attemptIndex) {
64
- const readyKey = this.readyKey(queueName, attemptIndex);
65
- const readyThreadId = await this.redis.lpop(readyKey);
66
- if (readyThreadId) {
67
- if (readyThreadId === this.threadId) {
68
- const data = await this.select(queueName, attemptIndex);
69
- const allow = await this.allow(queueName, attemptIndex, data);
70
- if (allow) {
71
- try {
72
- await this.excecuteWrapper(queueName, attemptIndex, data);
73
- }
74
- catch (err) {
75
- this.retry(queueName, attemptIndex, data, err);
76
- }
77
- }
42
+ await this.onError(queue, task, err);
43
+ if (task.attempt < this.attempts) {
44
+ await this.retry(queue, task);
45
+ }
46
+ else {
47
+ await this.onFatal(queue, task, err);
78
48
  }
79
- await this.redis.rpush(readyKey, this.threadId);
80
49
  }
50
+ await this.onEnd(queue, res);
81
51
  }
82
- async retry(queueName, attemptIndex, data, err) {
83
- try {
84
- if (attemptIndex <= (this.attempts - 1)) {
85
- const queueKey = this.queueKey(queueName, attemptIndex + 1);
86
- const dataProcessed = JSON.stringify(data);
87
- if (attemptIndex < (this.attempts - 1)) {
88
- return await this.redis.rpush(queueKey, dataProcessed);
89
- }
52
+ async loop(queue, attempt) {
53
+ while (this.running) {
54
+ if (!this.redisManager.checkConnection(this.db)) {
55
+ await this.redisManager.wait(1000);
56
+ continue;
90
57
  }
91
- await this.errorWrapper(queueName, attemptIndex, data, err);
92
- }
93
- catch (err) {
58
+ const tasks = await this.select(this.db, queue, attempt);
59
+ if (!(0, full_utils_1.isArrFilled)(tasks)) {
60
+ await this.redisManager.wait(1000);
61
+ continue;
62
+ }
63
+ await Promise.all(tasks.map((task) => this.process(queue, task)));
94
64
  }
95
- return 0;
96
65
  }
97
- async select(queueName, attemptIndex) {
98
- const queueKey = this.queueKey(queueName, attemptIndex);
99
- const data = await this.redis.lpop(queueKey);
100
- const output = await this.selectAfter(queueName, data);
101
- return output;
66
+ async retry(queue, task) {
67
+ await this.push(this.db, queue, { ...task, attempt: (task.attempt || 1) + 1 });
102
68
  }
103
- async selectAfter(queueName, data) {
104
- try {
105
- const parsed = JSON.parse(data);
106
- return parsed;
107
- }
108
- catch (err) {
109
- }
110
- return null;
69
+ setProcessors(processors) {
70
+ this.processors = [...processors];
71
+ return this;
111
72
  }
112
- async allow(queueName, attemptIndex, data) {
113
- return !!data;
73
+ getProcessors() {
74
+ return [...this.processors];
114
75
  }
115
- async excecuteWrapper(queueName, attemptIndex, data) {
116
- await this.excecute(queueName, attemptIndex, data);
76
+ getProcessor(name) {
77
+ return this.getProcessors().find((processor) => processor.name === name) ?? null;
117
78
  }
118
- async excecute(queueName, attemptIndex, data) {
119
- return await this.successWrapper(queueName, attemptIndex, data);
79
+ start(queue, attempt) {
80
+ if (this.running) {
81
+ return;
82
+ }
83
+ this.running = true;
84
+ this.loop(queue, attempt).catch((err) => {
85
+ this.running = false;
86
+ });
120
87
  }
121
- async successWrapper(queueName, attemptIndex, data) {
122
- return await this.success(queueName, attemptIndex, data);
88
+ stop() {
89
+ this.running = false;
123
90
  }
124
- async success(queueName, attemptIndex, data) {
125
- return data;
91
+ key(name, attempt) {
92
+ return this.redisManager.key('queue', `${name}:${attempt}`);
126
93
  }
127
- async errorWrapper(queueName, attemptIndex, data, err) {
128
- try {
129
- await this.error(queueName, attemptIndex, data, err);
94
+ async select(db, queue, attempt) {
95
+ const arr = await this.redisManager.connection(db).rpop(this.key(queue, attempt), this.portionSize);
96
+ if (!(0, full_utils_1.isArrFilled)(arr)) {
97
+ return null;
130
98
  }
131
- catch (err) {
132
- await this.errorMessage(queueName, attemptIndex, data, err);
133
- }
134
- }
135
- async errorMessage(queueName, attemptIndex, data, err) {
136
- if (this.displayError) {
137
- console.log(`\n-------------------------------------`);
138
- console.error(`[ERR]`, this.timestamp());
139
- console.error(` `, `Очередь:`, queueName);
140
- console.error(` `, `Попытка:`, attemptIndex);
141
- console.error(` `, `Результат:`, typeof data);
142
- console.error(` `, `Сообщение:`, err.message);
143
- }
144
- }
145
- async error(queueName, attemptIndex, data, err) {
146
- }
147
- async dropKeys(pattern, opts) {
148
- const count = opts?.count ?? 1000;
149
- const batch = opts?.batch ?? 5000;
150
- const pauseMs = opts?.pauseMs ?? 0;
151
- const cmd = opts?.useUnlink ?? true ? `unlink` : `del`;
152
- const stream = this.redis.scanStream({ match: pattern, count });
153
- let buffer = [], deleted = 0;
154
- for await (const keys of stream) {
155
- buffer.push(...keys);
156
- while (buffer.length >= batch) {
157
- const chunk = buffer.splice(0, batch);
158
- const n = await this.redis[cmd](...chunk);
159
- deleted += Number(n) || 0;
160
- if (pauseMs) {
161
- await new Promise((r) => setTimeout(r, pauseMs));
99
+ return arr
100
+ .map((item) => {
101
+ try {
102
+ const v = (0, full_utils_1.fromJSON)(item);
103
+ if (!(0, full_utils_1.isObjFilled)(v)) {
104
+ return null;
162
105
  }
106
+ return v;
163
107
  }
108
+ catch (err) {
109
+ }
110
+ return null;
111
+ })
112
+ .filter((item) => !!item);
113
+ }
114
+ async push(db, queue, task) {
115
+ const attempt = task.attempt || 1;
116
+ const payload = (0, full_utils_1.toJSON)({ ...task, attempt, enqueuedAt: Date.now(), });
117
+ if (!(0, full_utils_1.isStrFilled)(payload)) {
118
+ throw new Error('Empty payload.');
164
119
  }
165
- if (buffer.length) {
166
- const n = await this.redis[cmd](...buffer);
167
- deleted += Number(n) || 0;
168
- }
169
- return deleted;
120
+ await this.redisManager.connection(db).rpush(this.key(queue, attempt), payload);
170
121
  }
171
122
  }
172
123
  exports.Queue = Queue;
package/dist/Queue.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../src/Queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../src/Queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { RedisManager } from './RedisManager';
2
+ import { Queue } from './Queue';
3
+ import { TaskInterface } from './types';
4
+ export declare class QueueMethod extends Queue {
5
+ readonly redisManager: RedisManager;
6
+ readonly db: string;
7
+ protected execute(queue: string, task: TaskInterface): Promise<any>;
8
+ protected onSuccess(queue: string, task: TaskInterface, result: any): Promise<void>;
9
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueueMethod = void 0;
4
+ const full_utils_1 = require("full-utils");
5
+ const Queue_1 = require("./Queue");
6
+ class QueueMethod extends Queue_1.Queue {
7
+ async execute(queue, task) {
8
+ const processor = this.getProcessor(task.processor);
9
+ if (!processor) {
10
+ throw new Error('Неизвестный процессор.');
11
+ }
12
+ const method = processor.method(task.method);
13
+ if (!(0, full_utils_1.isFunc)(method)) {
14
+ throw new Error('Неизвестный метод.');
15
+ }
16
+ return await method.call(processor, task);
17
+ }
18
+ async onSuccess(queue, task, result) {
19
+ const processor = this.getProcessor(task.processor);
20
+ if (!processor) {
21
+ throw new Error('Неизвестный процессор.');
22
+ }
23
+ if ((processor.methods().length - 1) > task.method) {
24
+ await this.push(this.db, queue, { ...task, method: (task.method || 0) + 1 });
25
+ }
26
+ }
27
+ }
28
+ exports.QueueMethod = QueueMethod;
29
+ //# sourceMappingURL=QueueMethod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueueMethod.js","sourceRoot":"","sources":["../src/QueueMethod.ts"],"names":[],"mappings":";;;AAAA,2CAIoB;AAEpB,mCAAgC;AAGhC,MAAa,WAAY,SAAQ,aAAK;IAI3B,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,IAAmB;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpD,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7C,IAAI,CAAC,IAAA,mBAAM,EAAC,MAAM,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,IAAmB,EAAE,MAAW;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpD,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACpD,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;IACF,CAAC;CACD;AA5BD,kCA4BC"}
@@ -0,0 +1,22 @@
1
+ import Redis from 'ioredis';
2
+ import { RedisService } from '@nestjs-labs/nestjs-ioredis';
3
+ import { DistLockInterface } from './types';
4
+ export declare class RedisManager {
5
+ private readonly redis;
6
+ private readonly logger;
7
+ private readonly connections;
8
+ constructor(redis: RedisService);
9
+ timestamp(value?: number): string;
10
+ wait(ms: number): Promise<unknown>;
11
+ key(path: string, name: string): string;
12
+ connection(db: string): Redis | undefined | null;
13
+ checkConnection(db: string): boolean;
14
+ dropKeys(db: string, pattern: string): Promise<number>;
15
+ acquireLock(db: string, logicalKey: string, ttlMs?: number, opts?: {
16
+ retries?: number;
17
+ minDelayMs?: number;
18
+ maxDelayMs?: number;
19
+ }): Promise<DistLockInterface | null>;
20
+ private readonly UNLOCK_LUA;
21
+ private readonly EXTEND_LUA;
22
+ }