atomic-queues 1.5.2 → 1.6.0
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/README.md +59 -35
- package/dist/decorators/constants.d.ts +17 -0
- package/dist/decorators/constants.d.ts.map +1 -0
- package/dist/decorators/constants.js +23 -0
- package/dist/decorators/constants.js.map +1 -0
- package/dist/decorators/entity.decorators.d.ts +88 -0
- package/dist/decorators/entity.decorators.d.ts.map +1 -0
- package/dist/decorators/entity.decorators.js +150 -0
- package/dist/decorators/entity.decorators.js.map +1 -0
- package/dist/decorators/index.d.ts +9 -1
- package/dist/decorators/index.d.ts.map +1 -1
- package/dist/decorators/index.js +9 -1
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/interfaces.d.ts +130 -0
- package/dist/decorators/interfaces.d.ts.map +1 -0
- package/dist/decorators/interfaces.js +3 -0
- package/dist/decorators/interfaces.js.map +1 -0
- package/dist/decorators/job.decorators.d.ts +60 -0
- package/dist/decorators/job.decorators.d.ts.map +1 -0
- package/dist/decorators/job.decorators.js +97 -0
- package/dist/decorators/job.decorators.js.map +1 -0
- package/dist/decorators/legacy.decorators.d.ts +36 -0
- package/dist/decorators/legacy.decorators.d.ts.map +1 -0
- package/dist/decorators/legacy.decorators.js +61 -0
- package/dist/decorators/legacy.decorators.js.map +1 -0
- package/dist/decorators/metadata-readers.d.ts +31 -0
- package/dist/decorators/metadata-readers.d.ts.map +1 -0
- package/dist/decorators/metadata-readers.js +53 -0
- package/dist/decorators/metadata-readers.js.map +1 -0
- package/dist/decorators/registry.d.ts +2 -0
- package/dist/decorators/registry.d.ts.map +1 -0
- package/dist/decorators/registry.js +6 -0
- package/dist/decorators/registry.js.map +1 -0
- package/dist/decorators/scaler.decorators.d.ts +65 -0
- package/dist/decorators/scaler.decorators.d.ts.map +1 -0
- package/dist/decorators/scaler.decorators.js +103 -0
- package/dist/decorators/scaler.decorators.js.map +1 -0
- package/dist/decorators/type-guards.d.ts +18 -0
- package/dist/decorators/type-guards.d.ts.map +1 -0
- package/dist/decorators/type-guards.js +32 -0
- package/dist/decorators/type-guards.js.map +1 -0
- package/dist/decorators/utils.d.ts +20 -0
- package/dist/decorators/utils.d.ts.map +1 -0
- package/dist/decorators/utils.js +98 -0
- package/dist/decorators/utils.js.map +1 -0
- package/dist/decorators/worker.decorators.d.ts +58 -0
- package/dist/decorators/worker.decorators.d.ts.map +1 -0
- package/dist/decorators/worker.decorators.js +92 -0
- package/dist/decorators/worker.decorators.js.map +1 -0
- package/dist/domain/interfaces/config.interfaces.d.ts +188 -0
- package/dist/domain/interfaces/config.interfaces.d.ts.map +1 -0
- package/dist/domain/interfaces/config.interfaces.js +3 -0
- package/dist/domain/interfaces/config.interfaces.js.map +1 -0
- package/dist/domain/interfaces/cqrs.interfaces.d.ts +7 -0
- package/dist/domain/interfaces/cqrs.interfaces.d.ts.map +1 -0
- package/dist/domain/interfaces/cqrs.interfaces.js +3 -0
- package/dist/domain/interfaces/cqrs.interfaces.js.map +1 -0
- package/dist/domain/interfaces/event.interfaces.d.ts +71 -0
- package/dist/domain/interfaces/event.interfaces.d.ts.map +1 -0
- package/dist/domain/interfaces/event.interfaces.js +3 -0
- package/dist/domain/interfaces/event.interfaces.js.map +1 -0
- package/dist/domain/interfaces/index-tracking.interfaces.d.ts +69 -0
- package/dist/domain/interfaces/index-tracking.interfaces.d.ts.map +1 -0
- package/dist/domain/interfaces/index-tracking.interfaces.js +3 -0
- package/dist/domain/interfaces/index-tracking.interfaces.js.map +1 -0
- package/dist/domain/interfaces/index.d.ts +12 -0
- package/dist/domain/interfaces/index.d.ts.map +1 -0
- package/dist/domain/interfaces/index.js +28 -0
- package/dist/domain/interfaces/index.js.map +1 -0
- package/dist/domain/interfaces/job.interfaces.d.ts +76 -0
- package/dist/domain/interfaces/job.interfaces.d.ts.map +1 -0
- package/dist/domain/interfaces/job.interfaces.js +3 -0
- package/dist/domain/interfaces/job.interfaces.js.map +1 -0
- package/dist/domain/interfaces/lock.interfaces.d.ts +54 -0
- package/dist/domain/interfaces/lock.interfaces.d.ts.map +1 -0
- package/dist/domain/interfaces/lock.interfaces.js +3 -0
- package/dist/domain/interfaces/lock.interfaces.js.map +1 -0
- package/dist/domain/interfaces/process.interfaces.d.ts +44 -0
- package/dist/domain/interfaces/process.interfaces.d.ts.map +1 -0
- package/dist/domain/interfaces/process.interfaces.js +3 -0
- package/dist/domain/interfaces/process.interfaces.js.map +1 -0
- package/dist/domain/interfaces/queue.interfaces.d.ts +46 -0
- package/dist/domain/interfaces/queue.interfaces.d.ts.map +1 -0
- package/dist/domain/interfaces/queue.interfaces.js +3 -0
- package/dist/domain/interfaces/queue.interfaces.js.map +1 -0
- package/dist/domain/interfaces/scaling.interfaces.d.ts +62 -0
- package/dist/domain/interfaces/scaling.interfaces.d.ts.map +1 -0
- package/dist/domain/interfaces/scaling.interfaces.js +3 -0
- package/dist/domain/interfaces/scaling.interfaces.js.map +1 -0
- package/dist/domain/interfaces/utility.types.d.ts +15 -0
- package/dist/domain/interfaces/utility.types.d.ts.map +1 -0
- package/dist/domain/interfaces/utility.types.js +3 -0
- package/dist/domain/interfaces/utility.types.js.map +1 -0
- package/dist/domain/interfaces/worker.interfaces.d.ts +120 -0
- package/dist/domain/interfaces/worker.interfaces.d.ts.map +1 -0
- package/dist/domain/interfaces/worker.interfaces.js +3 -0
- package/dist/domain/interfaces/worker.interfaces.js.map +1 -0
- package/dist/module/atomic-queues.module.d.ts.map +1 -1
- package/dist/module/atomic-queues.module.js +4 -0
- package/dist/module/atomic-queues.module.js.map +1 -1
- package/dist/services/cron-manager/cron-manager.service.d.ts +5 -4
- package/dist/services/cron-manager/cron-manager.service.d.ts.map +1 -1
- package/dist/services/cron-manager/cron-manager.service.js +26 -57
- package/dist/services/cron-manager/cron-manager.service.js.map +1 -1
- package/dist/services/index-manager/index-manager.service.d.ts +0 -4
- package/dist/services/index-manager/index-manager.service.d.ts.map +1 -1
- package/dist/services/index-manager/index-manager.service.js +4 -16
- package/dist/services/index-manager/index-manager.service.js.map +1 -1
- package/dist/services/processor-discovery/decorator-discovery.service.d.ts +40 -0
- package/dist/services/processor-discovery/decorator-discovery.service.d.ts.map +1 -0
- package/dist/services/processor-discovery/decorator-discovery.service.js +191 -0
- package/dist/services/processor-discovery/decorator-discovery.service.js.map +1 -0
- package/dist/services/processor-discovery/index.d.ts +4 -0
- package/dist/services/processor-discovery/index.d.ts.map +1 -1
- package/dist/services/processor-discovery/index.js +4 -0
- package/dist/services/processor-discovery/index.js.map +1 -1
- package/dist/services/processor-discovery/processor-discovery.service.d.ts +28 -156
- package/dist/services/processor-discovery/processor-discovery.service.d.ts.map +1 -1
- package/dist/services/processor-discovery/processor-discovery.service.js +121 -592
- package/dist/services/processor-discovery/processor-discovery.service.js.map +1 -1
- package/dist/services/processor-discovery/processor-registry.d.ts +58 -0
- package/dist/services/processor-discovery/processor-registry.d.ts.map +1 -0
- package/dist/services/processor-discovery/processor-registry.js +74 -0
- package/dist/services/processor-discovery/processor-registry.js.map +1 -0
- package/dist/services/processor-discovery/scaling-registration.service.d.ts +60 -0
- package/dist/services/processor-discovery/scaling-registration.service.d.ts.map +1 -0
- package/dist/services/processor-discovery/scaling-registration.service.js +261 -0
- package/dist/services/processor-discovery/scaling-registration.service.js.map +1 -0
- package/dist/services/processor-discovery/worker-factory.service.d.ts +54 -0
- package/dist/services/processor-discovery/worker-factory.service.d.ts.map +1 -0
- package/dist/services/processor-discovery/worker-factory.service.js +185 -0
- package/dist/services/processor-discovery/worker-factory.service.js.map +1 -0
- package/dist/services/queue-bus/entity-target.d.ts +58 -0
- package/dist/services/queue-bus/entity-target.d.ts.map +1 -0
- package/dist/services/queue-bus/entity-target.js +109 -0
- package/dist/services/queue-bus/entity-target.js.map +1 -0
- package/dist/services/queue-bus/index.d.ts +4 -0
- package/dist/services/queue-bus/index.d.ts.map +1 -1
- package/dist/services/queue-bus/index.js +4 -0
- package/dist/services/queue-bus/index.js.map +1 -1
- package/dist/services/queue-bus/queue-bus.service.d.ts +9 -145
- package/dist/services/queue-bus/queue-bus.service.d.ts.map +1 -1
- package/dist/services/queue-bus/queue-bus.service.js +23 -311
- package/dist/services/queue-bus/queue-bus.service.js.map +1 -1
- package/dist/services/queue-bus/queue-bus.types.d.ts +40 -0
- package/dist/services/queue-bus/queue-bus.types.d.ts.map +1 -0
- package/dist/services/queue-bus/queue-bus.types.js +3 -0
- package/dist/services/queue-bus/queue-bus.types.js.map +1 -0
- package/dist/services/queue-bus/queue-bus.utils.d.ts +34 -0
- package/dist/services/queue-bus/queue-bus.utils.d.ts.map +1 -0
- package/dist/services/queue-bus/queue-bus.utils.js +82 -0
- package/dist/services/queue-bus/queue-bus.utils.js.map +1 -0
- package/dist/services/queue-bus/queue-target.d.ts +61 -0
- package/dist/services/queue-bus/queue-target.d.ts.map +1 -0
- package/dist/services/queue-bus/queue-target.js +123 -0
- package/dist/services/queue-bus/queue-target.js.map +1 -0
- package/dist/services/queue-events-manager/queue-events-manager.service.d.ts +0 -4
- package/dist/services/queue-events-manager/queue-events-manager.service.d.ts.map +1 -1
- package/dist/services/queue-events-manager/queue-events-manager.service.js +3 -15
- package/dist/services/queue-events-manager/queue-events-manager.service.js.map +1 -1
- package/dist/services/resource-lock/resource-lock.service.d.ts +0 -4
- package/dist/services/resource-lock/resource-lock.service.d.ts.map +1 -1
- package/dist/services/resource-lock/resource-lock.service.js +4 -16
- package/dist/services/resource-lock/resource-lock.service.js.map +1 -1
- package/dist/services/service-queue/index.d.ts +1 -0
- package/dist/services/service-queue/index.d.ts.map +1 -1
- package/dist/services/service-queue/index.js +1 -0
- package/dist/services/service-queue/index.js.map +1 -1
- package/dist/services/service-queue/service-queue.service.d.ts +2 -35
- package/dist/services/service-queue/service-queue.service.d.ts.map +1 -1
- package/dist/services/service-queue/service-queue.service.js +17 -49
- package/dist/services/service-queue/service-queue.service.js.map +1 -1
- package/dist/services/service-queue/service-queue.types.d.ts +32 -0
- package/dist/services/service-queue/service-queue.types.d.ts.map +1 -0
- package/dist/services/service-queue/service-queue.types.js +27 -0
- package/dist/services/service-queue/service-queue.types.js.map +1 -0
- package/dist/services/worker-manager/worker-manager.service.d.ts.map +1 -1
- package/dist/services/worker-manager/worker-manager.service.js +2 -1
- package/dist/services/worker-manager/worker-manager.service.js.map +1 -1
- package/dist/utils/async.utils.d.ts +51 -0
- package/dist/utils/async.utils.d.ts.map +1 -0
- package/dist/utils/async.utils.js +87 -0
- package/dist/utils/async.utils.js.map +1 -0
- package/dist/utils/helpers.d.ts +4 -123
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/helpers.js +18 -226
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/job.utils.d.ts +50 -0
- package/dist/utils/job.utils.d.ts.map +1 -0
- package/dist/utils/job.utils.js +89 -0
- package/dist/utils/job.utils.js.map +1 -0
- package/dist/utils/naming.utils.d.ts +21 -0
- package/dist/utils/naming.utils.d.ts.map +1 -0
- package/dist/utils/naming.utils.js +38 -0
- package/dist/utils/naming.utils.js.map +1 -0
- package/dist/utils/rate-limit.utils.d.ts +9 -0
- package/dist/utils/rate-limit.utils.d.ts.map +1 -0
- package/dist/utils/rate-limit.utils.js +30 -0
- package/dist/utils/rate-limit.utils.js.map +1 -0
- package/dist/utils/redis.utils.d.ts +3 -0
- package/dist/utils/redis.utils.d.ts.map +1 -0
- package/dist/utils/redis.utils.js +14 -0
- package/dist/utils/redis.utils.js.map +1 -0
- package/package.json +17 -17
- package/dist/decorators/decorators.d.ts +0 -489
- package/dist/decorators/decorators.d.ts.map +0 -1
- package/dist/decorators/decorators.js +0 -680
- package/dist/decorators/decorators.js.map +0 -1
- package/dist/domain/interfaces.d.ts +0 -748
- package/dist/domain/interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces.js +0 -19
- package/dist/domain/interfaces.js.map +0 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { Job } from 'bullmq';
|
|
3
|
+
import { QueueManagerService } from '../queue-manager/queue-manager.service';
|
|
4
|
+
import { QueueEventsManagerService } from '../queue-events-manager/queue-events-manager.service';
|
|
5
|
+
import { WorkerProcessorOptions } from '../../decorators';
|
|
6
|
+
import { IEntityConfig } from '../../domain/interfaces';
|
|
7
|
+
import { EnqueueOptions } from './queue-bus.types';
|
|
8
|
+
/**
|
|
9
|
+
* QueueTarget - Fluent builder for targeting a specific processor's queue
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* await queueBus
|
|
13
|
+
* .forProcessor(TableWorkerProcessor)
|
|
14
|
+
* .enqueue(new MakeBetCommand(tableId, bets, player));
|
|
15
|
+
*/
|
|
16
|
+
export declare class QueueTarget {
|
|
17
|
+
private readonly queueManager;
|
|
18
|
+
private readonly processorClass;
|
|
19
|
+
private readonly processorOptions;
|
|
20
|
+
private readonly entityConfig?;
|
|
21
|
+
private readonly queueEventsManager?;
|
|
22
|
+
private readonly logger;
|
|
23
|
+
constructor(queueManager: QueueManagerService, processorClass: Type<any>, processorOptions: WorkerProcessorOptions, entityConfig?: IEntityConfig | undefined, queueEventsManager?: QueueEventsManagerService | undefined);
|
|
24
|
+
/**
|
|
25
|
+
* Get the queue name function from the processor
|
|
26
|
+
*/
|
|
27
|
+
private getQueueNameFn;
|
|
28
|
+
/**
|
|
29
|
+
* Extract entity ID using the priority chain
|
|
30
|
+
*/
|
|
31
|
+
private extractEntityId;
|
|
32
|
+
/**
|
|
33
|
+
* Enqueue a command/query for processing
|
|
34
|
+
*
|
|
35
|
+
* @param commandOrQuery - The command or query instance
|
|
36
|
+
* @param options - Optional settings (entityId override, jobOptions)
|
|
37
|
+
* @returns The created BullMQ job
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* await queueBus
|
|
41
|
+
* .forProcessor(TableWorkerProcessor)
|
|
42
|
+
* .enqueue(new MakeBetCommand(tableId, bets, player));
|
|
43
|
+
*
|
|
44
|
+
* // With job options
|
|
45
|
+
* await queueBus
|
|
46
|
+
* .forProcessor(TableWorkerProcessor)
|
|
47
|
+
* .enqueue(new DealCommand(tableId), { jobOptions: { delay: 5000 } });
|
|
48
|
+
*/
|
|
49
|
+
enqueue<T extends object>(commandOrQuery: T, options?: EnqueueOptions): Promise<Job>;
|
|
50
|
+
/**
|
|
51
|
+
* Enqueue and wait for result
|
|
52
|
+
*/
|
|
53
|
+
enqueueAndWait<T extends object, R = any>(commandOrQuery: T, options?: EnqueueOptions & {
|
|
54
|
+
timeout?: number;
|
|
55
|
+
}): Promise<R>;
|
|
56
|
+
/**
|
|
57
|
+
* Enqueue multiple commands/queries in bulk
|
|
58
|
+
*/
|
|
59
|
+
enqueueBulk<T extends object>(commandsOrQueries: T[], options?: EnqueueOptions): Promise<Job[]>;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=queue-target.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue-target.d.ts","sourceRoot":"","sources":["../../../src/services/queue-bus/queue-target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD;;;;;;;GAOG;AACH,qBAAa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAPtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAGpC,YAAY,EAAE,mBAAmB,EACjC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,EACzB,gBAAgB,EAAE,sBAAsB,EACxC,YAAY,CAAC,EAAE,aAAa,YAAA,EAC5B,kBAAkB,CAAC,EAAE,yBAAyB,YAAA;IAGjE;;OAEG;IACH,OAAO,CAAC,cAAc;IAsBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;;;;;;;;;;;;;OAgBG;IACG,OAAO,CAAC,CAAC,SAAS,MAAM,EAC5B,cAAc,EAAE,CAAC,EACjB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,GAAG,CAAC;IA0Bf;;OAEG;IACG,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,GAAG,EAC5C,cAAc,EAAE,CAAC,EACjB,OAAO,CAAC,EAAE,cAAc,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9C,OAAO,CAAC,CAAC,CAAC;IAab;;OAEG;IACG,WAAW,CAAC,CAAC,SAAS,MAAM,EAChC,iBAAiB,EAAE,CAAC,EAAE,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,GAAG,EAAE,CAAC;CA6BlB"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QueueTarget = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const queue_bus_utils_1 = require("./queue-bus.utils");
|
|
6
|
+
/**
|
|
7
|
+
* QueueTarget - Fluent builder for targeting a specific processor's queue
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* await queueBus
|
|
11
|
+
* .forProcessor(TableWorkerProcessor)
|
|
12
|
+
* .enqueue(new MakeBetCommand(tableId, bets, player));
|
|
13
|
+
*/
|
|
14
|
+
class QueueTarget {
|
|
15
|
+
constructor(queueManager, processorClass, processorOptions, entityConfig, queueEventsManager) {
|
|
16
|
+
this.queueManager = queueManager;
|
|
17
|
+
this.processorClass = processorClass;
|
|
18
|
+
this.processorOptions = processorOptions;
|
|
19
|
+
this.entityConfig = entityConfig;
|
|
20
|
+
this.queueEventsManager = queueEventsManager;
|
|
21
|
+
this.logger = new common_1.Logger(QueueTarget.name);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get the queue name function from the processor
|
|
25
|
+
*/
|
|
26
|
+
getQueueNameFn() {
|
|
27
|
+
const { queueName } = this.processorOptions;
|
|
28
|
+
if (typeof queueName === 'function') {
|
|
29
|
+
return queueName;
|
|
30
|
+
}
|
|
31
|
+
if (typeof queueName === 'string') {
|
|
32
|
+
// Static queue name or pattern with {entityId}
|
|
33
|
+
return (entityId) => queueName.replace('{entityId}', entityId);
|
|
34
|
+
}
|
|
35
|
+
// Check entity config for custom queue name function
|
|
36
|
+
if (this.entityConfig?.queueName) {
|
|
37
|
+
return this.entityConfig.queueName;
|
|
38
|
+
}
|
|
39
|
+
// Default: entityType-{entityId}-queue
|
|
40
|
+
const { entityType } = this.processorOptions;
|
|
41
|
+
return (entityId) => `${entityType}-${entityId}-queue`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Extract entity ID using the priority chain
|
|
45
|
+
*/
|
|
46
|
+
extractEntityId(commandOrQuery, data) {
|
|
47
|
+
return (0, queue_bus_utils_1.extractEntityIdExplicit)(commandOrQuery, data, this.processorOptions.defaultEntityId, this.entityConfig, this.logger);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Enqueue a command/query for processing
|
|
51
|
+
*
|
|
52
|
+
* @param commandOrQuery - The command or query instance
|
|
53
|
+
* @param options - Optional settings (entityId override, jobOptions)
|
|
54
|
+
* @returns The created BullMQ job
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* await queueBus
|
|
58
|
+
* .forProcessor(TableWorkerProcessor)
|
|
59
|
+
* .enqueue(new MakeBetCommand(tableId, bets, player));
|
|
60
|
+
*
|
|
61
|
+
* // With job options
|
|
62
|
+
* await queueBus
|
|
63
|
+
* .forProcessor(TableWorkerProcessor)
|
|
64
|
+
* .enqueue(new DealCommand(tableId), { jobOptions: { delay: 5000 } });
|
|
65
|
+
*/
|
|
66
|
+
async enqueue(commandOrQuery, options) {
|
|
67
|
+
const jobName = (0, queue_bus_utils_1.getJobName)(commandOrQuery);
|
|
68
|
+
const data = (0, queue_bus_utils_1.extractData)(commandOrQuery);
|
|
69
|
+
const entityId = options?.entityId ?? this.extractEntityId(commandOrQuery, data);
|
|
70
|
+
// Get queue name from processor's queueName function
|
|
71
|
+
const queueNameFn = this.getQueueNameFn();
|
|
72
|
+
const queueName = queueNameFn(entityId);
|
|
73
|
+
// Add job via QueueManager (which handles event listening setup)
|
|
74
|
+
const { entityType } = this.processorOptions;
|
|
75
|
+
this.logger.debug(`[${this.processorClass.name}] Adding job ${jobName} to queue ${queueName}`);
|
|
76
|
+
// Get queue and ensure event listening
|
|
77
|
+
const queue = this.queueManager.getOrCreateQueue(queueName);
|
|
78
|
+
if (this.queueEventsManager) {
|
|
79
|
+
await this.queueEventsManager.ensureListening(queueName, entityType);
|
|
80
|
+
}
|
|
81
|
+
// Add job to queue
|
|
82
|
+
return queue.add(jobName, data, options?.jobOptions);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Enqueue and wait for result
|
|
86
|
+
*/
|
|
87
|
+
async enqueueAndWait(commandOrQuery, options) {
|
|
88
|
+
const job = await this.enqueue(commandOrQuery, options);
|
|
89
|
+
const data = (0, queue_bus_utils_1.extractData)(commandOrQuery);
|
|
90
|
+
const entityId = options?.entityId ?? this.extractEntityId(commandOrQuery, data);
|
|
91
|
+
const queueNameFn = this.getQueueNameFn();
|
|
92
|
+
const queueName = queueNameFn(entityId);
|
|
93
|
+
const queueEvents = await this.queueManager.getQueueEvents(queueName);
|
|
94
|
+
return job.waitUntilFinished(queueEvents, options?.timeout);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Enqueue multiple commands/queries in bulk
|
|
98
|
+
*/
|
|
99
|
+
async enqueueBulk(commandsOrQueries, options) {
|
|
100
|
+
if (commandsOrQueries.length === 0)
|
|
101
|
+
return [];
|
|
102
|
+
const firstCmd = commandsOrQueries[0];
|
|
103
|
+
const firstData = (0, queue_bus_utils_1.extractData)(firstCmd);
|
|
104
|
+
const entityId = options?.entityId ?? this.extractEntityId(firstCmd, firstData);
|
|
105
|
+
const queueNameFn = this.getQueueNameFn();
|
|
106
|
+
const queueName = queueNameFn(entityId);
|
|
107
|
+
const queue = this.queueManager.getOrCreateQueue(queueName);
|
|
108
|
+
// Ensure listening is set up for auto-spawn
|
|
109
|
+
const { entityType } = this.processorOptions;
|
|
110
|
+
if (this.queueEventsManager) {
|
|
111
|
+
await this.queueEventsManager.ensureListening(queueName, entityType);
|
|
112
|
+
}
|
|
113
|
+
const bulkJobs = commandsOrQueries.map((cmd) => ({
|
|
114
|
+
name: (0, queue_bus_utils_1.getJobName)(cmd),
|
|
115
|
+
data: (0, queue_bus_utils_1.extractData)(cmd),
|
|
116
|
+
opts: options?.jobOptions,
|
|
117
|
+
}));
|
|
118
|
+
this.logger.debug(`[${this.processorClass.name}] Adding ${bulkJobs.length} jobs to queue ${queueName}`);
|
|
119
|
+
return queue.addBulk(bulkJobs);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.QueueTarget = QueueTarget;
|
|
123
|
+
//# sourceMappingURL=queue-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue-target.js","sourceRoot":"","sources":["../../../src/services/queue-bus/queue-target.ts"],"names":[],"mappings":";;;AAAA,2CAA8C;AAO9C,uDAAqF;AAErF;;;;;;;GAOG;AACH,MAAa,WAAW;IAGtB,YACmB,YAAiC,EACjC,cAAyB,EACzB,gBAAwC,EACxC,YAA4B,EAC5B,kBAA8C;QAJ9C,iBAAY,GAAZ,YAAY,CAAqB;QACjC,mBAAc,GAAd,cAAc,CAAW;QACzB,qBAAgB,GAAhB,gBAAgB,CAAwB;QACxC,iBAAY,GAAZ,YAAY,CAAgB;QAC5B,uBAAkB,GAAlB,kBAAkB,CAA4B;QAPhD,WAAM,GAAG,IAAI,eAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAQpD,CAAC;IAEJ;;OAEG;IACK,cAAc;QACpB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE5C,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,+CAA+C;YAC/C,OAAO,CAAC,QAAgB,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACzE,CAAC;QAED,qDAAqD;QACrD,IAAI,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QACrC,CAAC;QAED,uCAAuC;QACvC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC7C,OAAO,CAAC,QAAgB,EAAE,EAAE,CAAC,GAAG,UAAU,IAAI,QAAQ,QAAQ,CAAC;IACjE,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,cAAsB,EAAE,IAAyB;QACvE,OAAO,IAAA,yCAAuB,EAC5B,cAAc,EACd,IAAI,EACJ,IAAI,CAAC,gBAAgB,CAAC,eAAe,EACrC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,OAAO,CACX,cAAiB,EACjB,OAAwB;QAExB,MAAM,OAAO,GAAG,IAAA,4BAAU,EAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAA,6BAAW,EAAC,cAAc,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAEjF,qDAAqD;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAExC,iEAAiE;QACjE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE7C,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,gBAAgB,OAAO,aAAa,SAAS,EAAE,CAC5E,CAAC;QAEF,uCAAuC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACvE,CAAC;QAED,mBAAmB;QACnB,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,cAAiB,EACjB,OAA+C;QAE/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,IAAI,GAAG,IAAA,6BAAW,EAAC,cAAc,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACjF,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAExC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAEtE,OAAO,GAAG,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAe,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,iBAAsB,EACtB,OAAwB;QAExB,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE9C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,IAAA,6BAAW,EAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEhF,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAE5D,4CAA4C;QAC5C,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC7C,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/C,IAAI,EAAE,IAAA,4BAAU,EAAC,GAAG,CAAC;YACrB,IAAI,EAAE,IAAA,6BAAW,EAAC,GAAG,CAAC;YACtB,IAAI,EAAE,OAAO,EAAE,UAAU;SAC1B,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,YAAY,QAAQ,CAAC,MAAM,kBAAkB,SAAS,EAAE,CACrF,CAAC;QAEF,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;CACF;AArJD,kCAqJC"}
|
|
@@ -112,10 +112,6 @@ export declare class QueueEventsManagerService implements OnModuleDestroy {
|
|
|
112
112
|
* Get all registered queue names.
|
|
113
113
|
*/
|
|
114
114
|
getRegisteredQueues(): string[];
|
|
115
|
-
/**
|
|
116
|
-
* Scan Redis keys matching a pattern.
|
|
117
|
-
*/
|
|
118
|
-
private scanKeys;
|
|
119
115
|
/**
|
|
120
116
|
* Cleanup on module destroy.
|
|
121
117
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-events-manager.service.d.ts","sourceRoot":"","sources":["../../../src/services/queue-events-manager/queue-events-manager.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"queue-events-manager.service.d.ts","sourceRoot":"","sources":["../../../src/services/queue-events-manager/queue-events-manager.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAwB,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,IAAI,CAAC,CAAC;AAYnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBACa,yBAA0B,YAAW,eAAe;IAyBhC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEnD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAClB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IA7BnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiD;IAClF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAG1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAIhB;IAGf,OAAO,CAAC,oBAAoB,CAAqC;IAQjE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;gBAGH,KAAK,EAAE,KAAK,EAEzC,MAAM,EAAE,yBAAyB,EACjC,aAAa,EAAE,oBAAoB,EACvB,iBAAiB,CAAC,EAAE,iBAAiB,YAAA,EACrC,mBAAmB,CAAC,EAAE,mBAAmB,YAAA;IAMxE;;;OAGG;IACH,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAK7D;;;OAGG;IACH,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,EACzC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GACzC,IAAI;IAyCP;;;;;;;OAOG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAC7C,OAAO,CAAC,IAAI,CAAC;IAiChB;;;;;;;;;;OAUG;YACW,gBAAgB;IA2D9B;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACG,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CjE;;;OAGG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3E;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrD;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAoBvC"}
|
|
@@ -21,6 +21,7 @@ const common_1 = require("@nestjs/common");
|
|
|
21
21
|
const bullmq_1 = require("bullmq");
|
|
22
22
|
const ioredis_1 = __importDefault(require("ioredis"));
|
|
23
23
|
const constants_1 = require("../constants");
|
|
24
|
+
const utils_1 = require("../../utils");
|
|
24
25
|
const worker_manager_1 = require("../worker-manager");
|
|
25
26
|
const service_queue_1 = require("../service-queue");
|
|
26
27
|
const spawn_queue_1 = require("../spawn-queue");
|
|
@@ -74,7 +75,7 @@ let QueueEventsManagerService = QueueEventsManagerService_1 = class QueueEventsM
|
|
|
74
75
|
// short-circuit without touching Redis at all.
|
|
75
76
|
// =========================================================================
|
|
76
77
|
this.hotCache = new Set();
|
|
77
|
-
this.keyPrefix = config
|
|
78
|
+
this.keyPrefix = (0, utils_1.resolveKeyPrefix)(config);
|
|
78
79
|
this.useServiceQueue = config.serviceQueue?.enabled !== false;
|
|
79
80
|
}
|
|
80
81
|
/**
|
|
@@ -242,7 +243,7 @@ let QueueEventsManagerService = QueueEventsManagerService_1 = class QueueEventsM
|
|
|
242
243
|
const queuePattern = `${this.keyPrefix}:${entityType}:*:queue`;
|
|
243
244
|
const bulkQueuePattern = `bull:${this.keyPrefix}:${entityType}:*:queue:*`;
|
|
244
245
|
// Scan for existing BullMQ queue keys
|
|
245
|
-
const keys = await
|
|
246
|
+
const keys = await (0, utils_1.scanKeys)(this.redis, bulkQueuePattern);
|
|
246
247
|
const queueNames = new Set();
|
|
247
248
|
for (const key of keys) {
|
|
248
249
|
// Extract queue name from BullMQ key
|
|
@@ -310,19 +311,6 @@ let QueueEventsManagerService = QueueEventsManagerService_1 = class QueueEventsM
|
|
|
310
311
|
getRegisteredQueues() {
|
|
311
312
|
return Array.from(this.registeredQueues.keys());
|
|
312
313
|
}
|
|
313
|
-
/**
|
|
314
|
-
* Scan Redis keys matching a pattern.
|
|
315
|
-
*/
|
|
316
|
-
async scanKeys(pattern) {
|
|
317
|
-
let cursor = '0';
|
|
318
|
-
const keys = [];
|
|
319
|
-
do {
|
|
320
|
-
const [nextCursor, scanKeys] = await this.redis.scan(cursor, 'MATCH', pattern, 'COUNT', 100);
|
|
321
|
-
cursor = nextCursor;
|
|
322
|
-
keys.push(...scanKeys);
|
|
323
|
-
} while (cursor !== '0');
|
|
324
|
-
return keys;
|
|
325
|
-
}
|
|
326
314
|
/**
|
|
327
315
|
* Cleanup on module destroy.
|
|
328
316
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-events-manager.service.js","sourceRoot":"","sources":["../../../src/services/queue-events-manager/queue-events-manager.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,2CAMwB;AACxB,mCAAqC;AACrC,sDAA4B;AAC5B,4CAAyE;AAEzE,sDAAyD;AACzD,oDAA6E;AAC7E,gDAAmD;AAqBnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEI,IAAM,yBAAyB,iCAA/B,MAAM,yBAAyB;IAwBpC,YAC+B,KAA6B,EAE1D,MAAkD,EACjC,aAAmC,EACxC,iBAAsD,EACtD,mBAA0D;QALxB,UAAK,GAAL,KAAK,CAAO;QAEzC,WAAM,GAAN,MAAM,CAA2B;QACjC,kBAAa,GAAb,aAAa,CAAsB;QACvB,sBAAiB,GAAjB,iBAAiB,CAAoB;QACrC,wBAAmB,GAAnB,mBAAmB,CAAsB;QA7BvD,WAAM,GAAG,IAAI,eAAM,CAAC,2BAAyB,CAAC,IAAI,CAAC,CAAC;QACpD,qBAAgB,GAAuC,IAAI,GAAG,EAAE,CAAC;QAIlF,qDAAqD;QACpC,mBAAc,GAI1B,IAAI,GAAG,EAAE,CAAC;QAEf,uCAAuC;QAC/B,yBAAoB,GAAgC,IAAI,CAAC;QAEjE,4EAA4E;QAC5E,gEAAgE;QAChE,oEAAoE;QACpE,oEAAoE;QACpE,+CAA+C;QAC/C,4EAA4E;QAC3D,aAAQ,GAAgB,IAAI,GAAG,EAAE,CAAC;QAUjD,IAAI,CAAC,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"queue-events-manager.service.js","sourceRoot":"","sources":["../../../src/services/queue-events-manager/queue-events-manager.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,10 +112,6 @@ export declare class ResourceLockService implements IResourceLockService {
|
|
|
112
112
|
* Get the Redis key for a lock.
|
|
113
113
|
*/
|
|
114
114
|
private getLockKey;
|
|
115
|
-
/**
|
|
116
|
-
* Scan Redis keys matching a pattern.
|
|
117
|
-
*/
|
|
118
|
-
private scanKeys;
|
|
119
115
|
/**
|
|
120
116
|
* Fisher-Yates shuffle algorithm.
|
|
121
117
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-lock.service.d.ts","sourceRoot":"","sources":["../../../src/services/resource-lock/resource-lock.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,yBAAyB,EAC1B,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-lock.service.d.ts","sourceRoot":"","sources":["../../../src/services/resource-lock/resource-lock.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,yBAAyB,EAC1B,MAAM,cAAc,CAAC;AAItB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBACa,mBAAoB,YAAW,oBAAoB;IAwD/B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEnD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAzDzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAGnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAalC;IAGF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAiBlC;IAGF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAYjC;gBAG8C,KAAK,EAAE,KAAK,EAEzC,MAAM,EAAE,yBAAyB;IAKpD;;;;;OAKG;IACG,WAAW,CACf,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,SAAK,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC;IAiDvB;;OAEG;IACG,WAAW,CACf,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC;IAgBnB;;;OAGG;IACG,gBAAgB,CACpB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IA+BnB;;OAEG;IACG,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM1E;;OAEG;IACG,WAAW,CACf,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAkBhC;;OAEG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,EAAE,CAAC;IAyB3B;;;;;;OAMG;IACG,oBAAoB,CACxB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,SAAK,GACd,OAAO,CAAC,WAAW,CAAC;IA8BvB;;OAEG;IACG,UAAU,CACd,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC;IA2BnB;;OAEG;IACG,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;QACxD,MAAM,EAAE,aAAa,EAAE,CAAC;QACxB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;IAyBF;;;OAGG;IACG,mBAAmB,CACvB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IAKnB;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAsB1E;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,YAAY;CAOrB"}
|
|
@@ -19,6 +19,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
19
|
exports.ResourceLockService = void 0;
|
|
20
20
|
const common_1 = require("@nestjs/common");
|
|
21
21
|
const ioredis_1 = __importDefault(require("ioredis"));
|
|
22
|
+
const utils_1 = require("../../utils");
|
|
22
23
|
const constants_1 = require("../constants");
|
|
23
24
|
/**
|
|
24
25
|
* ResourceLockService
|
|
@@ -116,7 +117,7 @@ let ResourceLockService = ResourceLockService_1 = class ResourceLockService {
|
|
|
116
117
|
return 0 -- Lock doesn't exist
|
|
117
118
|
end
|
|
118
119
|
`;
|
|
119
|
-
this.keyPrefix = config
|
|
120
|
+
this.keyPrefix = (0, utils_1.resolveKeyPrefix)(config);
|
|
120
121
|
}
|
|
121
122
|
/**
|
|
122
123
|
* Acquire a lock on a resource.
|
|
@@ -227,7 +228,7 @@ let ResourceLockService = ResourceLockService_1 = class ResourceLockService {
|
|
|
227
228
|
async getOwnerLocks(ownerType, ownerId) {
|
|
228
229
|
// Scan for all locks and filter by owner
|
|
229
230
|
const pattern = `${this.keyPrefix}:lock:*`;
|
|
230
|
-
const keys = await
|
|
231
|
+
const keys = await (0, utils_1.scanKeys)(this.redis, pattern);
|
|
231
232
|
const locks = [];
|
|
232
233
|
for (const key of keys) {
|
|
233
234
|
const data = await this.redis.get(key);
|
|
@@ -293,7 +294,7 @@ let ResourceLockService = ResourceLockService_1 = class ResourceLockService {
|
|
|
293
294
|
*/
|
|
294
295
|
async getResourceTypeLocks(resourceType) {
|
|
295
296
|
const pattern = `${this.keyPrefix}:lock:${resourceType}:*`;
|
|
296
|
-
const keys = await
|
|
297
|
+
const keys = await (0, utils_1.scanKeys)(this.redis, pattern);
|
|
297
298
|
const locked = [];
|
|
298
299
|
for (const key of keys) {
|
|
299
300
|
const data = await this.redis.get(key);
|
|
@@ -345,19 +346,6 @@ let ResourceLockService = ResourceLockService_1 = class ResourceLockService {
|
|
|
345
346
|
getLockKey(resourceType, resourceId) {
|
|
346
347
|
return `${this.keyPrefix}:lock:${resourceType}:${resourceId}`;
|
|
347
348
|
}
|
|
348
|
-
/**
|
|
349
|
-
* Scan Redis keys matching a pattern.
|
|
350
|
-
*/
|
|
351
|
-
async scanKeys(pattern) {
|
|
352
|
-
let cursor = '0';
|
|
353
|
-
const keys = [];
|
|
354
|
-
do {
|
|
355
|
-
const [nextCursor, scanKeys] = await this.redis.scan(cursor, 'MATCH', pattern, 'COUNT', 100);
|
|
356
|
-
cursor = nextCursor;
|
|
357
|
-
keys.push(...scanKeys);
|
|
358
|
-
} while (cursor !== '0');
|
|
359
|
-
return keys;
|
|
360
|
-
}
|
|
361
349
|
/**
|
|
362
350
|
* Fisher-Yates shuffle algorithm.
|
|
363
351
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-lock.service.js","sourceRoot":"","sources":["../../../src/services/resource-lock/resource-lock.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,2CAA4D;AAC5D,sDAA4B;AAO5B,4CAAyE;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEI,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAuD9B,YAC+B,KAA6B,EAE1D,MAAkD;QAFJ,UAAK,GAAL,KAAK,CAAO;QAEzC,WAAM,GAAN,MAAM,CAA2B;QAzDnC,WAAM,GAAG,IAAI,eAAM,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;QAG/D,yCAAyC;QACxB,wBAAmB,GAAG;;;;;;;;;;;;;GAatC,CAAC;QAEF,0DAA0D;QACzC,wBAAmB,GAAG;;;;;;;;;;;;;;;;;GAiBtC,CAAC;QAEF,oCAAoC;QACnB,uBAAkB,GAAG;;;;;;;;;;;;GAYrC,CAAC;QAOA,IAAI,CAAC,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"resource-lock.service.js","sourceRoot":"","sources":["../../../src/services/resource-lock/resource-lock.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,2CAA4D;AAC5D,sDAA4B;AAO5B,uCAAyD;AACzD,4CAAyE;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEI,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAuD9B,YAC+B,KAA6B,EAE1D,MAAkD;QAFJ,UAAK,GAAL,KAAK,CAAO;QAEzC,WAAM,GAAN,MAAM,CAA2B;QAzDnC,WAAM,GAAG,IAAI,eAAM,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;QAG/D,yCAAyC;QACxB,wBAAmB,GAAG;;;;;;;;;;;;;GAatC,CAAC;QAEF,0DAA0D;QACzC,wBAAmB,GAAG;;;;;;;;;;;;;;;;;GAiBtC,CAAC;QAEF,oCAAoC;QACnB,uBAAkB,GAAG;;;;;;;;;;;;GAYrC,CAAC;QAOA,IAAI,CAAC,SAAS,GAAG,IAAA,wBAAgB,EAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CACf,YAAoB,EACpB,UAAkB,EAClB,OAAe,EACf,SAAiB,EACjB,UAAU,GAAG,EAAE,EACf,QAAkC;QAElC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,MAAM,QAAQ,GAAkB;YAC9B,UAAU;YACV,YAAY;YACZ,OAAO;YACP,SAAS;YACT,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC;YACtD,QAAQ;SACT,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAClC,IAAI,CAAC,mBAAmB,EACxB,CAAC,EACD,OAAO,EACP,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EACxB,UAAU,CAAC,QAAQ,EAAE,CACtB,CAAC;YAEF,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kBAAkB,YAAY,IAAI,UAAU,OAAO,SAAS,IAAI,OAAO,EAAE,CAC1E,CAAC;gBACF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,qCAAqC,YAAY,IAAI,UAAU,EAAE,CAClE,CAAC;YACF,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,4BAA4B;aACrC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,4BAA4B,YAAY,IAAI,UAAU,GAAG,EACzD,KAAK,CACN,CAAC;YACF,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,UAAW,KAAe,CAAC,OAAO,EAAE;aAC7C,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,YAAoB,EACpB,UAAkB;QAElB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,YAAY,IAAI,UAAU,EAAE,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,4BAA4B,YAAY,IAAI,UAAU,GAAG,EACzD,KAAK,CACN,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CACpB,YAAoB,EACpB,UAAkB,EAClB,OAAe;QAEf,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAClC,IAAI,CAAC,mBAAmB,EACxB,CAAC,EACD,OAAO,EACP,OAAO,CACR,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAC;YAC9B,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,2BAA2B,YAAY,IAAI,UAAU,EAAE,CACxD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,oCAAoC,YAAY,IAAI,UAAU,EAAE,CACjE,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kCAAkC,YAAY,IAAI,UAAU,GAAG,EAC/D,KAAK,CACN,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,YAAoB,EAAE,UAAkB;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,MAAM,KAAK,CAAC,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,YAAoB,EACpB,UAAkB;QAElB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE3C,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,CAAC;YAC/C,4CAA4C;YAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,OAAe;QAEf,yCAAyC;QACzC,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,SAAS,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAQ,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,CAAC;oBAC/C,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;wBAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,uBAAuB;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,oBAAoB,CACxB,YAAoB,EACpB,YAAsB,EACtB,OAAe,EACf,SAAiB,EACjB,UAAU,GAAG,EAAE;QAEf,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;QAEtD,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,YAAY,EACZ,UAAU,EACV,OAAO,EACP,SAAS,EACT,UAAU,CACX,CAAC;YAEF,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6BAA6B,YAAY,IAAI,UAAU,EAAE,CAC1D,CAAC;gBACF,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,2CAA2C,SAAS,IAAI,OAAO,EAAE,CAClE,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,gCAAgC;SACzC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,YAAoB,EACpB,UAAkB,EAClB,UAAkB;QAElB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAClC,IAAI,CAAC,kBAAkB,EACvB,CAAC,EACD,OAAO,EACP,UAAU,CAAC,QAAQ,EAAE,CACtB,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAC;YAC9B,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,sBAAsB,YAAY,IAAI,UAAU,OAAO,UAAU,GAAG,CACrE,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,4BAA4B,YAAY,IAAI,UAAU,GAAG,EACzD,KAAK,CACN,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,YAAoB;QAI7C,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,SAAS,YAAY,IAAI,CAAC;QAC3D,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAQ,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAoB,EAAE,CAAC;QAEnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,CAAC;oBAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;gBAAC,MAAM,CAAC;oBACP,uBAAuB;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,MAAM;YACN,IAAI,EAAE,EAAE,EAAE,0DAA0D;SACrE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CACvB,YAAoB,EACpB,UAAkB,EAClB,OAAe;QAEf,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC9D,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,OAAe;QACtD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CACrC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAChB,CAAC;YACF,IAAI,QAAQ;gBAAE,OAAO,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,WAAW,OAAO,cAAc,SAAS,IAAI,OAAO,EAAE,CACvD,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAE5E;;OAEG;IACK,UAAU,CAAC,YAAoB,EAAE,UAAkB;QACzD,OAAO,GAAG,IAAI,CAAC,SAAS,SAAS,YAAY,IAAI,UAAU,EAAE,CAAC;IAChE,CAAC;IAED;;OAEG;IACK,YAAY,CAAI,KAAU;QAChC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AA7ZY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;IAyDR,WAAA,IAAA,eAAM,EAAC,+BAAmB,CAAC,CAAA;IAC3B,WAAA,IAAA,eAAM,EAAC,gCAAoB,CAAC,CAAA;qCADwB,iBAAK;GAxDjD,mBAAmB,CA6Z/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/service-queue/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/service-queue/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./service-queue.service"), exports);
|
|
18
|
+
__exportStar(require("./service-queue.types"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/service-queue/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/service-queue/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,wDAAsC"}
|
|
@@ -1,37 +1,8 @@
|
|
|
1
1
|
import { OnModuleInit, OnApplicationShutdown } from '@nestjs/common';
|
|
2
2
|
import Redis from 'ioredis';
|
|
3
3
|
import { IAtomicQueuesModuleConfig } from '../../domain';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* These operations MUST be processed by exactly ONE worker across the entire distributed system.
|
|
7
|
-
*/
|
|
8
|
-
export declare enum ServiceQueueJobNames {
|
|
9
|
-
/** Get the count of all workers across all nodes */
|
|
10
|
-
GET_GLOBAL_WORKER_COUNT = "get-global-worker-count",
|
|
11
|
-
/** Get workers for a specific entity across all nodes */
|
|
12
|
-
GET_ENTITY_WORKERS = "get-entity-workers",
|
|
13
|
-
/** Verify ownership of a resource */
|
|
14
|
-
VERIFY_OWNERSHIP = "verify-ownership",
|
|
15
|
-
/** Acquire global lock */
|
|
16
|
-
ACQUIRE_GLOBAL_LOCK = "acquire-global-lock",
|
|
17
|
-
/** Release global lock */
|
|
18
|
-
RELEASE_GLOBAL_LOCK = "release-global-lock",
|
|
19
|
-
/** Run scaling cycle for CronManager - triggers worker spawn/terminate decisions */
|
|
20
|
-
RUN_SCALING_CYCLE = "run-scaling-cycle",
|
|
21
|
-
/** Spawn a worker for a specific entity - used when opening a table/entity */
|
|
22
|
-
SPAWN_ENTITY_WORKER = "spawn-entity-worker",
|
|
23
|
-
/** Custom service operation */
|
|
24
|
-
CUSTOM = "custom"
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Job data for service queue operations
|
|
28
|
-
*/
|
|
29
|
-
export interface IServiceQueueJobData<T = unknown> {
|
|
30
|
-
uuid: string;
|
|
31
|
-
jobName: ServiceQueueJobNames;
|
|
32
|
-
payload: T;
|
|
33
|
-
responseChannel?: string;
|
|
34
|
-
}
|
|
4
|
+
import { ServiceQueueJobNames } from './service-queue.types';
|
|
5
|
+
export { ServiceQueueJobNames, IServiceQueueJobData } from './service-queue.types';
|
|
35
6
|
/**
|
|
36
7
|
* ServiceQueueManager
|
|
37
8
|
*
|
|
@@ -224,9 +195,5 @@ export declare class ServiceQueueManager implements OnModuleInit, OnApplicationS
|
|
|
224
195
|
* Used when opening a table/entity that needs a worker immediately.
|
|
225
196
|
*/
|
|
226
197
|
private handleSpawnEntityWorker;
|
|
227
|
-
/**
|
|
228
|
-
* Scan Redis keys matching a pattern.
|
|
229
|
-
*/
|
|
230
|
-
private scanKeys;
|
|
231
198
|
}
|
|
232
199
|
//# sourceMappingURL=service-queue.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-queue.service.d.ts","sourceRoot":"","sources":["../../../src/services/service-queue/service-queue.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EACZ,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAGzD
|
|
1
|
+
{"version":3,"file":"service-queue.service.d.ts","sourceRoot":"","sources":["../../../src/services/service-queue/service-queue.service.ts"],"names":[],"mappings":"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"}
|