atomic-queues 1.6.1 → 2.0.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 +182 -411
- package/dist/cli/generators/json-schema.d.ts +3 -0
- package/dist/cli/generators/json-schema.d.ts.map +1 -0
- package/dist/cli/generators/json-schema.js +31 -0
- package/dist/cli/generators/json-schema.js.map +1 -0
- package/dist/cli/generators/typescript.d.ts +3 -0
- package/dist/cli/generators/typescript.d.ts.map +1 -0
- package/dist/cli/generators/typescript.js +62 -0
- package/dist/cli/generators/typescript.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +156 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/decorators/actor.decorators.d.ts +4 -0
- package/dist/decorators/actor.decorators.d.ts.map +1 -0
- package/dist/decorators/actor.decorators.js +32 -0
- package/dist/decorators/actor.decorators.js.map +1 -0
- package/dist/decorators/constants.d.ts +5 -12
- package/dist/decorators/constants.d.ts.map +1 -1
- package/dist/decorators/constants.js +10 -16
- package/dist/decorators/constants.js.map +1 -1
- package/dist/decorators/index.d.ts +4 -4
- package/dist/decorators/index.d.ts.map +1 -1
- package/dist/decorators/index.js +4 -4
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/interfaces.d.ts +18 -78
- package/dist/decorators/interfaces.d.ts.map +1 -1
- package/dist/decorators/metadata-readers.d.ts +5 -26
- package/dist/decorators/metadata-readers.d.ts.map +1 -1
- package/dist/decorators/metadata-readers.js +16 -33
- package/dist/decorators/metadata-readers.js.map +1 -1
- package/dist/decorators/schema.decorators.d.ts +2 -0
- package/dist/decorators/schema.decorators.d.ts.map +1 -0
- package/dist/decorators/schema.decorators.js +13 -0
- package/dist/decorators/schema.decorators.js.map +1 -0
- package/dist/domain/interfaces/config.interfaces.d.ts +52 -153
- package/dist/domain/interfaces/config.interfaces.d.ts.map +1 -1
- package/dist/domain/interfaces/index.d.ts +0 -7
- package/dist/domain/interfaces/index.d.ts.map +1 -1
- package/dist/domain/interfaces/index.js +0 -7
- package/dist/domain/interfaces/index.js.map +1 -1
- package/dist/domain/interfaces/job.interfaces.d.ts +32 -65
- package/dist/domain/interfaces/job.interfaces.d.ts.map +1 -1
- package/dist/index.d.ts +0 -34
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -39
- package/dist/index.js.map +1 -1
- package/dist/module/atomic-queues.module.d.ts +0 -83
- package/dist/module/atomic-queues.module.d.ts.map +1 -1
- package/dist/module/atomic-queues.module.js +35 -134
- package/dist/module/atomic-queues.module.js.map +1 -1
- package/dist/services/actor-registry/actor-registry.service.d.ts +30 -0
- package/dist/services/actor-registry/actor-registry.service.d.ts.map +1 -0
- package/dist/services/actor-registry/actor-registry.service.js +186 -0
- package/dist/services/actor-registry/actor-registry.service.js.map +1 -0
- package/dist/services/actor-registry/index.d.ts +2 -0
- package/dist/services/actor-registry/index.d.ts.map +1 -0
- package/dist/services/actor-registry/index.js +18 -0
- package/dist/services/actor-registry/index.js.map +1 -0
- package/dist/services/actor-system/actor-system.service.d.ts +19 -0
- package/dist/services/actor-system/actor-system.service.d.ts.map +1 -0
- package/dist/services/actor-system/actor-system.service.js +86 -0
- package/dist/services/actor-system/actor-system.service.js.map +1 -0
- package/dist/services/actor-system/index.d.ts +2 -0
- package/dist/services/actor-system/index.d.ts.map +1 -0
- package/dist/services/{cron-manager → actor-system}/index.js +1 -1
- package/dist/services/actor-system/index.js.map +1 -0
- package/dist/services/command-discovery/command-discovery.service.d.ts +6 -53
- package/dist/services/command-discovery/command-discovery.service.d.ts.map +1 -1
- package/dist/services/command-discovery/command-discovery.service.js +0 -59
- package/dist/services/command-discovery/command-discovery.service.js.map +1 -1
- package/dist/services/constants.d.ts +2 -9
- package/dist/services/constants.d.ts.map +1 -1
- package/dist/services/constants.js +3 -10
- package/dist/services/constants.js.map +1 -1
- package/dist/services/executor-pool/executor-pool.service.d.ts +31 -0
- package/dist/services/executor-pool/executor-pool.service.d.ts.map +1 -0
- package/dist/services/executor-pool/executor-pool.service.js +147 -0
- package/dist/services/executor-pool/executor-pool.service.js.map +1 -0
- package/dist/services/executor-pool/index.d.ts +2 -0
- package/dist/services/executor-pool/index.d.ts.map +1 -0
- package/dist/services/{queue-manager → executor-pool}/index.js +1 -1
- package/dist/services/executor-pool/index.js.map +1 -0
- package/dist/services/gate/gate.service.d.ts +17 -0
- package/dist/services/gate/gate.service.d.ts.map +1 -0
- package/dist/services/gate/gate.service.js +66 -0
- package/dist/services/gate/gate.service.js.map +1 -0
- package/dist/services/gate/index.d.ts +2 -0
- package/dist/services/gate/index.d.ts.map +1 -0
- package/dist/services/{spawn-queue → gate}/index.js +1 -1
- package/dist/services/gate/index.js.map +1 -0
- package/dist/services/handler-executor/handler-executor.service.d.ts +32 -0
- package/dist/services/handler-executor/handler-executor.service.d.ts.map +1 -0
- package/dist/services/handler-executor/handler-executor.service.js +186 -0
- package/dist/services/handler-executor/handler-executor.service.js.map +1 -0
- package/dist/services/handler-executor/index.d.ts +2 -0
- package/dist/services/handler-executor/index.d.ts.map +1 -0
- package/dist/services/handler-executor/index.js +18 -0
- package/dist/services/handler-executor/index.js.map +1 -0
- package/dist/services/index.d.ts +11 -12
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +11 -12
- package/dist/services/index.js.map +1 -1
- package/dist/services/log/index.d.ts +2 -0
- package/dist/services/log/index.d.ts.map +1 -0
- package/dist/services/{index-manager → log}/index.js +1 -1
- package/dist/services/log/index.js.map +1 -0
- package/dist/services/log/log.service.d.ts +21 -0
- package/dist/services/log/log.service.d.ts.map +1 -0
- package/dist/services/log/log.service.js +92 -0
- package/dist/services/log/log.service.js.map +1 -0
- package/dist/services/queue-bus/index.d.ts +0 -4
- package/dist/services/queue-bus/index.d.ts.map +1 -1
- package/dist/services/queue-bus/index.js +0 -4
- package/dist/services/queue-bus/index.js.map +1 -1
- package/dist/services/queue-bus/queue-bus.service.d.ts +44 -198
- package/dist/services/queue-bus/queue-bus.service.d.ts.map +1 -1
- package/dist/services/queue-bus/queue-bus.service.js +103 -259
- package/dist/services/queue-bus/queue-bus.service.js.map +1 -1
- package/dist/services/queue-bus/queue-bus.utils.d.ts +0 -28
- package/dist/services/queue-bus/queue-bus.utils.d.ts.map +1 -1
- package/dist/services/queue-bus/queue-bus.utils.js +1 -41
- package/dist/services/queue-bus/queue-bus.utils.js.map +1 -1
- package/dist/services/registry/index.d.ts +4 -0
- package/dist/services/registry/index.d.ts.map +1 -0
- package/dist/services/{queue-events-manager → registry}/index.js +3 -1
- package/dist/services/registry/index.js.map +1 -0
- package/dist/services/registry/registry.service.d.ts +43 -0
- package/dist/services/registry/registry.service.d.ts.map +1 -0
- package/dist/services/registry/registry.service.js +379 -0
- package/dist/services/registry/registry.service.js.map +1 -0
- package/dist/services/registry/registry.types.d.ts +24 -0
- package/dist/services/registry/registry.types.d.ts.map +1 -0
- package/dist/{domain/interfaces/lock.interfaces.js → services/registry/registry.types.js} +1 -1
- package/dist/services/registry/registry.types.js.map +1 -0
- package/dist/services/registry/schema-converter.d.ts +2 -0
- package/dist/services/registry/schema-converter.d.ts.map +1 -0
- package/dist/services/registry/schema-converter.js +27 -0
- package/dist/services/registry/schema-converter.js.map +1 -0
- package/dist/services/result-collector/index.d.ts +2 -0
- package/dist/services/result-collector/index.d.ts.map +1 -0
- package/dist/services/result-collector/index.js +18 -0
- package/dist/services/result-collector/index.js.map +1 -0
- package/dist/services/result-collector/result-collector.service.d.ts +17 -0
- package/dist/services/result-collector/result-collector.service.d.ts.map +1 -0
- package/dist/services/result-collector/result-collector.service.js +92 -0
- package/dist/services/result-collector/result-collector.service.js.map +1 -0
- package/dist/services/scheduler/index.d.ts +2 -0
- package/dist/services/scheduler/index.d.ts.map +1 -0
- package/dist/services/{job-processor → scheduler}/index.js +1 -1
- package/dist/services/scheduler/index.js.map +1 -0
- package/dist/services/scheduler/scheduler.service.d.ts +17 -0
- package/dist/services/scheduler/scheduler.service.d.ts.map +1 -0
- package/dist/services/scheduler/scheduler.service.js +116 -0
- package/dist/services/scheduler/scheduler.service.js.map +1 -0
- package/dist/services/shutdown/index.d.ts +2 -0
- package/dist/services/shutdown/index.d.ts.map +1 -0
- package/dist/services/shutdown/index.js +18 -0
- package/dist/services/shutdown/index.js.map +1 -0
- package/dist/services/shutdown/shutdown.service.d.ts +8 -0
- package/dist/services/shutdown/shutdown.service.d.ts.map +1 -0
- package/dist/services/shutdown/shutdown.service.js +29 -0
- package/dist/services/shutdown/shutdown.service.js.map +1 -0
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/naming.utils.d.ts +0 -16
- package/dist/utils/naming.utils.d.ts.map +1 -1
- package/dist/utils/naming.utils.js +0 -29
- package/dist/utils/naming.utils.js.map +1 -1
- package/package.json +19 -11
- package/dist/decorators/legacy.decorators.d.ts +0 -36
- package/dist/decorators/legacy.decorators.d.ts.map +0 -1
- package/dist/decorators/legacy.decorators.js +0 -61
- package/dist/decorators/legacy.decorators.js.map +0 -1
- package/dist/decorators/scaler.decorators.d.ts +0 -65
- package/dist/decorators/scaler.decorators.d.ts.map +0 -1
- package/dist/decorators/scaler.decorators.js +0 -103
- package/dist/decorators/scaler.decorators.js.map +0 -1
- package/dist/decorators/type-guards.d.ts +0 -18
- package/dist/decorators/type-guards.d.ts.map +0 -1
- package/dist/decorators/type-guards.js +0 -32
- package/dist/decorators/type-guards.js.map +0 -1
- package/dist/decorators/worker.decorators.d.ts +0 -58
- package/dist/decorators/worker.decorators.d.ts.map +0 -1
- package/dist/decorators/worker.decorators.js +0 -92
- package/dist/decorators/worker.decorators.js.map +0 -1
- package/dist/domain/interfaces/event.interfaces.d.ts +0 -71
- package/dist/domain/interfaces/event.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/event.interfaces.js +0 -3
- package/dist/domain/interfaces/event.interfaces.js.map +0 -1
- package/dist/domain/interfaces/index-tracking.interfaces.d.ts +0 -69
- package/dist/domain/interfaces/index-tracking.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/index-tracking.interfaces.js +0 -3
- package/dist/domain/interfaces/index-tracking.interfaces.js.map +0 -1
- package/dist/domain/interfaces/lock.interfaces.d.ts +0 -54
- package/dist/domain/interfaces/lock.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/lock.interfaces.js.map +0 -1
- package/dist/domain/interfaces/process.interfaces.d.ts +0 -44
- package/dist/domain/interfaces/process.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/process.interfaces.js +0 -3
- package/dist/domain/interfaces/process.interfaces.js.map +0 -1
- package/dist/domain/interfaces/queue.interfaces.d.ts +0 -46
- package/dist/domain/interfaces/queue.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/queue.interfaces.js +0 -3
- package/dist/domain/interfaces/queue.interfaces.js.map +0 -1
- package/dist/domain/interfaces/scaling.interfaces.d.ts +0 -62
- package/dist/domain/interfaces/scaling.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/scaling.interfaces.js +0 -3
- package/dist/domain/interfaces/scaling.interfaces.js.map +0 -1
- package/dist/domain/interfaces/worker.interfaces.d.ts +0 -120
- package/dist/domain/interfaces/worker.interfaces.d.ts.map +0 -1
- package/dist/domain/interfaces/worker.interfaces.js +0 -3
- package/dist/domain/interfaces/worker.interfaces.js.map +0 -1
- package/dist/services/cron-manager/cron-manager.service.d.ts +0 -199
- package/dist/services/cron-manager/cron-manager.service.d.ts.map +0 -1
- package/dist/services/cron-manager/cron-manager.service.js +0 -583
- package/dist/services/cron-manager/cron-manager.service.js.map +0 -1
- package/dist/services/cron-manager/index.d.ts +0 -2
- package/dist/services/cron-manager/index.d.ts.map +0 -1
- package/dist/services/cron-manager/index.js.map +0 -1
- package/dist/services/index-manager/index-manager.service.d.ts +0 -142
- package/dist/services/index-manager/index-manager.service.d.ts.map +0 -1
- package/dist/services/index-manager/index-manager.service.js +0 -325
- package/dist/services/index-manager/index-manager.service.js.map +0 -1
- package/dist/services/index-manager/index.d.ts +0 -2
- package/dist/services/index-manager/index.d.ts.map +0 -1
- package/dist/services/index-manager/index.js.map +0 -1
- package/dist/services/job-processor/index.d.ts +0 -2
- package/dist/services/job-processor/index.d.ts.map +0 -1
- package/dist/services/job-processor/index.js.map +0 -1
- package/dist/services/job-processor/job-processor.service.d.ts +0 -156
- package/dist/services/job-processor/job-processor.service.d.ts.map +0 -1
- package/dist/services/job-processor/job-processor.service.js +0 -331
- package/dist/services/job-processor/job-processor.service.js.map +0 -1
- package/dist/services/processor-discovery/decorator-discovery.service.d.ts +0 -40
- package/dist/services/processor-discovery/decorator-discovery.service.d.ts.map +0 -1
- package/dist/services/processor-discovery/decorator-discovery.service.js +0 -191
- package/dist/services/processor-discovery/decorator-discovery.service.js.map +0 -1
- package/dist/services/processor-discovery/index.d.ts +0 -6
- package/dist/services/processor-discovery/index.d.ts.map +0 -1
- package/dist/services/processor-discovery/index.js +0 -22
- package/dist/services/processor-discovery/index.js.map +0 -1
- package/dist/services/processor-discovery/processor-discovery.service.d.ts +0 -98
- package/dist/services/processor-discovery/processor-discovery.service.d.ts.map +0 -1
- package/dist/services/processor-discovery/processor-discovery.service.js +0 -258
- package/dist/services/processor-discovery/processor-discovery.service.js.map +0 -1
- package/dist/services/processor-discovery/processor-registry.d.ts +0 -58
- package/dist/services/processor-discovery/processor-registry.d.ts.map +0 -1
- package/dist/services/processor-discovery/processor-registry.js +0 -74
- package/dist/services/processor-discovery/processor-registry.js.map +0 -1
- package/dist/services/processor-discovery/scaling-registration.service.d.ts +0 -60
- package/dist/services/processor-discovery/scaling-registration.service.d.ts.map +0 -1
- package/dist/services/processor-discovery/scaling-registration.service.js +0 -261
- package/dist/services/processor-discovery/scaling-registration.service.js.map +0 -1
- package/dist/services/processor-discovery/worker-factory.service.d.ts +0 -54
- package/dist/services/processor-discovery/worker-factory.service.d.ts.map +0 -1
- package/dist/services/processor-discovery/worker-factory.service.js +0 -185
- package/dist/services/processor-discovery/worker-factory.service.js.map +0 -1
- package/dist/services/queue-bus/entity-target.d.ts +0 -58
- package/dist/services/queue-bus/entity-target.d.ts.map +0 -1
- package/dist/services/queue-bus/entity-target.js +0 -109
- package/dist/services/queue-bus/entity-target.js.map +0 -1
- package/dist/services/queue-bus/queue-bus.types.d.ts +0 -40
- package/dist/services/queue-bus/queue-bus.types.d.ts.map +0 -1
- package/dist/services/queue-bus/queue-bus.types.js +0 -3
- package/dist/services/queue-bus/queue-bus.types.js.map +0 -1
- package/dist/services/queue-bus/queue-target.d.ts +0 -61
- package/dist/services/queue-bus/queue-target.d.ts.map +0 -1
- package/dist/services/queue-bus/queue-target.js +0 -123
- package/dist/services/queue-bus/queue-target.js.map +0 -1
- package/dist/services/queue-events-manager/index.d.ts +0 -2
- package/dist/services/queue-events-manager/index.d.ts.map +0 -1
- package/dist/services/queue-events-manager/index.js.map +0 -1
- package/dist/services/queue-events-manager/queue-events-manager.service.d.ts +0 -120
- package/dist/services/queue-events-manager/queue-events-manager.service.d.ts.map +0 -1
- package/dist/services/queue-events-manager/queue-events-manager.service.js +0 -343
- package/dist/services/queue-events-manager/queue-events-manager.service.js.map +0 -1
- package/dist/services/queue-manager/index.d.ts +0 -2
- package/dist/services/queue-manager/index.d.ts.map +0 -1
- package/dist/services/queue-manager/index.js.map +0 -1
- package/dist/services/queue-manager/queue-manager.service.d.ts +0 -148
- package/dist/services/queue-manager/queue-manager.service.d.ts.map +0 -1
- package/dist/services/queue-manager/queue-manager.service.js +0 -348
- package/dist/services/queue-manager/queue-manager.service.js.map +0 -1
- package/dist/services/resource-lock/index.d.ts +0 -2
- package/dist/services/resource-lock/index.d.ts.map +0 -1
- package/dist/services/resource-lock/index.js +0 -18
- package/dist/services/resource-lock/index.js.map +0 -1
- package/dist/services/resource-lock/resource-lock.service.d.ts +0 -120
- package/dist/services/resource-lock/resource-lock.service.d.ts.map +0 -1
- package/dist/services/resource-lock/resource-lock.service.js +0 -367
- package/dist/services/resource-lock/resource-lock.service.js.map +0 -1
- package/dist/services/service-queue/index.d.ts +0 -3
- package/dist/services/service-queue/index.d.ts.map +0 -1
- package/dist/services/service-queue/index.js +0 -19
- package/dist/services/service-queue/index.js.map +0 -1
- package/dist/services/service-queue/service-queue.service.d.ts +0 -199
- package/dist/services/service-queue/service-queue.service.d.ts.map +0 -1
- package/dist/services/service-queue/service-queue.service.js +0 -617
- package/dist/services/service-queue/service-queue.service.js.map +0 -1
- package/dist/services/service-queue/service-queue.types.d.ts +0 -32
- package/dist/services/service-queue/service-queue.types.d.ts.map +0 -1
- package/dist/services/service-queue/service-queue.types.js +0 -27
- package/dist/services/service-queue/service-queue.types.js.map +0 -1
- package/dist/services/shutdown-state/index.d.ts +0 -2
- package/dist/services/shutdown-state/index.d.ts.map +0 -1
- package/dist/services/shutdown-state/index.js +0 -18
- package/dist/services/shutdown-state/index.js.map +0 -1
- package/dist/services/shutdown-state/shutdown-state.service.d.ts +0 -69
- package/dist/services/shutdown-state/shutdown-state.service.d.ts.map +0 -1
- package/dist/services/shutdown-state/shutdown-state.service.js +0 -127
- package/dist/services/shutdown-state/shutdown-state.service.js.map +0 -1
- package/dist/services/spawn-queue/index.d.ts +0 -2
- package/dist/services/spawn-queue/index.d.ts.map +0 -1
- package/dist/services/spawn-queue/index.js.map +0 -1
- package/dist/services/spawn-queue/spawn-queue.service.d.ts +0 -119
- package/dist/services/spawn-queue/spawn-queue.service.d.ts.map +0 -1
- package/dist/services/spawn-queue/spawn-queue.service.js +0 -273
- package/dist/services/spawn-queue/spawn-queue.service.js.map +0 -1
- package/dist/services/worker-manager/index.d.ts +0 -2
- package/dist/services/worker-manager/index.d.ts.map +0 -1
- package/dist/services/worker-manager/index.js +0 -18
- package/dist/services/worker-manager/index.js.map +0 -1
- package/dist/services/worker-manager/worker-manager.service.d.ts +0 -221
- package/dist/services/worker-manager/worker-manager.service.d.ts.map +0 -1
- package/dist/services/worker-manager/worker-manager.service.js +0 -591
- package/dist/services/worker-manager/worker-manager.service.js.map +0 -1
- package/dist/utils/helpers.d.ts +0 -5
- package/dist/utils/helpers.d.ts.map +0 -1
- package/dist/utils/helpers.js +0 -21
- package/dist/utils/helpers.js.map +0 -1
- package/dist/utils/job.utils.d.ts +0 -50
- package/dist/utils/job.utils.d.ts.map +0 -1
- package/dist/utils/job.utils.js +0 -89
- package/dist/utils/job.utils.js.map +0 -1
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
var ScalingRegistrationService_1;
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.ScalingRegistrationService = void 0;
|
|
17
|
-
const common_1 = require("@nestjs/common");
|
|
18
|
-
const worker_manager_1 = require("../worker-manager");
|
|
19
|
-
const queue_manager_1 = require("../queue-manager");
|
|
20
|
-
const cron_manager_1 = require("../cron-manager");
|
|
21
|
-
const service_queue_1 = require("../service-queue");
|
|
22
|
-
const queue_events_manager_1 = require("../queue-events-manager");
|
|
23
|
-
const spawn_queue_1 = require("../spawn-queue");
|
|
24
|
-
const constants_1 = require("../constants");
|
|
25
|
-
/**
|
|
26
|
-
* ScalingRegistrationService
|
|
27
|
-
*
|
|
28
|
-
* Handles all scaling/spawn registration logic:
|
|
29
|
-
* - Registering scalers with CronManager
|
|
30
|
-
* - Registering scalerless processors for auto-spawn
|
|
31
|
-
* - Registering with SpawnQueueService for distributed worker creation
|
|
32
|
-
* - Setting up spawn worker handlers with ServiceQueueManager
|
|
33
|
-
* - Setting up QueueEvents listening for job arrivals
|
|
34
|
-
*/
|
|
35
|
-
let ScalingRegistrationService = ScalingRegistrationService_1 = class ScalingRegistrationService {
|
|
36
|
-
constructor(workerManager, queueManager, cronManager, serviceQueueManager, queueEventsManager, spawnQueueService, config) {
|
|
37
|
-
this.workerManager = workerManager;
|
|
38
|
-
this.queueManager = queueManager;
|
|
39
|
-
this.cronManager = cronManager;
|
|
40
|
-
this.serviceQueueManager = serviceQueueManager;
|
|
41
|
-
this.queueEventsManager = queueEventsManager;
|
|
42
|
-
this.spawnQueueService = spawnQueueService;
|
|
43
|
-
this.config = config;
|
|
44
|
-
this.logger = new common_1.Logger(ScalingRegistrationService_1.name);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Register all scaling-related handlers.
|
|
48
|
-
* Called by the orchestrator during module init.
|
|
49
|
-
*/
|
|
50
|
-
async registerAll(registry, workerFactory) {
|
|
51
|
-
await this.registerScalersWithCronManager(registry, workerFactory);
|
|
52
|
-
await this.registerScalerlessProcessors(registry, workerFactory);
|
|
53
|
-
await this.registerSpawnWorkerHandler(registry, workerFactory);
|
|
54
|
-
await this.registerWithSpawnQueue(registry, workerFactory);
|
|
55
|
-
await this.setupQueueEventsListening(registry, workerFactory);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Register scalers with CronManager for automatic scaling
|
|
59
|
-
*/
|
|
60
|
-
async registerScalersWithCronManager(registry, workerFactory) {
|
|
61
|
-
if (!this.cronManager) {
|
|
62
|
-
this.logger.warn('CronManager not available. Automatic scaling disabled.');
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
for (const [entityType, scaler] of registry.getAllScalers()) {
|
|
66
|
-
const processor = registry.getProcessor(entityType);
|
|
67
|
-
const scalingConfig = {
|
|
68
|
-
entityType,
|
|
69
|
-
maxWorkersPerEntity: scaler.options.maxWorkersPerEntity ?? 1,
|
|
70
|
-
idleTimeoutSeconds: scaler.options.idleTimeoutSeconds ?? 15,
|
|
71
|
-
getActiveEntityIds: async () => {
|
|
72
|
-
if (scaler.methods.getActiveEntities) {
|
|
73
|
-
return scaler.scalerInstance[scaler.methods.getActiveEntities]();
|
|
74
|
-
}
|
|
75
|
-
return [];
|
|
76
|
-
},
|
|
77
|
-
getDesiredWorkerCount: async (entityId) => {
|
|
78
|
-
if (scaler.methods.getDesiredWorkerCount) {
|
|
79
|
-
return scaler.scalerInstance[scaler.methods.getDesiredWorkerCount](entityId);
|
|
80
|
-
}
|
|
81
|
-
return 1;
|
|
82
|
-
},
|
|
83
|
-
onSpawnWorker: async (entityId) => {
|
|
84
|
-
// First call custom spawn handler if defined
|
|
85
|
-
if (scaler.methods.onSpawnWorker) {
|
|
86
|
-
await scaler.scalerInstance[scaler.methods.onSpawnWorker](entityId);
|
|
87
|
-
}
|
|
88
|
-
// Auto-create worker if processor is registered
|
|
89
|
-
if (processor) {
|
|
90
|
-
await workerFactory.createWorkerForEntity(entityType, entityId);
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
onTerminateWorker: async (entityId, workerId) => {
|
|
94
|
-
// First call custom terminate handler if defined
|
|
95
|
-
if (scaler.methods.onTerminateWorker) {
|
|
96
|
-
await scaler.scalerInstance[scaler.methods.onTerminateWorker](entityId, workerId);
|
|
97
|
-
}
|
|
98
|
-
// Auto-terminate worker if processor is registered
|
|
99
|
-
if (processor) {
|
|
100
|
-
const workerName = processor.workerNameFn(entityId);
|
|
101
|
-
await this.workerManager.signalWorkerClose(workerName);
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
};
|
|
105
|
-
this.cronManager.registerEntityType(scalingConfig);
|
|
106
|
-
this.logger.log(`Registered scaling config for entity type '${entityType}' (idleTimeout: ${scalingConfig.idleTimeoutSeconds}s)`);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Register processors that don't have an EntityScaler (scalerless mode).
|
|
111
|
-
*
|
|
112
|
-
* When SpawnQueueService is available, this registration is SKIPPED
|
|
113
|
-
* because the spawn queue handles both on-demand worker creation
|
|
114
|
-
* (distributed across pods) and idle cleanup (local sweep).
|
|
115
|
-
*/
|
|
116
|
-
async registerScalerlessProcessors(registry, workerFactory) {
|
|
117
|
-
if (this.spawnQueueService) {
|
|
118
|
-
this.logger.log('SpawnQueueService detected — skipping CronManager registration for scalerless processors ' +
|
|
119
|
-
'(spawn queue handles on-demand creation + idle sweep)');
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
if (!this.cronManager) {
|
|
123
|
-
this.logger.debug('CronManager not available, skipping scalerless processor registration');
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
for (const [entityType, processor] of registry.getAllProcessors()) {
|
|
127
|
-
if (registry.hasScaler(entityType)) {
|
|
128
|
-
continue;
|
|
129
|
-
}
|
|
130
|
-
if (processor.options.autoSpawn === false) {
|
|
131
|
-
this.logger.debug(`Auto-spawn disabled for ${entityType}, skipping scalerless registration`);
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
this.logger.log(`Registering scalerless config for '${entityType}' (autoSpawn mode)`);
|
|
135
|
-
const scalingConfig = {
|
|
136
|
-
entityType,
|
|
137
|
-
maxWorkersPerEntity: processor.options.maxWorkersPerEntity ?? 1,
|
|
138
|
-
idleTimeoutSeconds: processor.options.idleTimeoutSeconds ?? 15,
|
|
139
|
-
getActiveEntityIds: async () => {
|
|
140
|
-
return [];
|
|
141
|
-
},
|
|
142
|
-
getDesiredWorkerCount: async (_entityId) => {
|
|
143
|
-
return 1;
|
|
144
|
-
},
|
|
145
|
-
onSpawnWorker: async (entityId) => {
|
|
146
|
-
await workerFactory.createWorkerForEntity(entityType, entityId);
|
|
147
|
-
},
|
|
148
|
-
onTerminateWorker: async (entityId, _workerId) => {
|
|
149
|
-
const workerName = processor.workerNameFn(entityId);
|
|
150
|
-
await this.workerManager.signalWorkerClose(workerName);
|
|
151
|
-
},
|
|
152
|
-
};
|
|
153
|
-
this.cronManager.registerEntityType(scalingConfig);
|
|
154
|
-
this.logger.log(`Registered scalerless config for '${entityType}' (idleTimeout: ${scalingConfig.idleTimeoutSeconds}s)`);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Register with SpawnQueueService for distributed worker creation.
|
|
159
|
-
*/
|
|
160
|
-
async registerWithSpawnQueue(registry, workerFactory) {
|
|
161
|
-
if (!this.spawnQueueService) {
|
|
162
|
-
this.logger.debug('SpawnQueueService not available, skipping spawn queue registration');
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
this.spawnQueueService.registerSpawnHandler(async (entityType, entityId) => {
|
|
166
|
-
const scaler = registry.getScaler(entityType);
|
|
167
|
-
const processor = registry.getProcessor(entityType);
|
|
168
|
-
if (scaler?.methods.onSpawnWorker) {
|
|
169
|
-
await scaler.scalerInstance[scaler.methods.onSpawnWorker](entityId);
|
|
170
|
-
}
|
|
171
|
-
if (processor) {
|
|
172
|
-
await workerFactory.createWorkerForEntity(entityType, entityId);
|
|
173
|
-
}
|
|
174
|
-
if (!scaler?.methods.onSpawnWorker && !processor) {
|
|
175
|
-
this.logger.warn(`No spawn handler for entity type '${entityType}'. ` +
|
|
176
|
-
`Register a @WorkerProcessor or configure in entities config.`);
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
// Register idle timeouts for each entity type
|
|
180
|
-
for (const [entityType, processor] of registry.getAllProcessors()) {
|
|
181
|
-
const idleTimeout = processor.options.idleTimeoutSeconds ?? 15;
|
|
182
|
-
this.spawnQueueService.registerIdleTimeout(entityType, idleTimeout);
|
|
183
|
-
}
|
|
184
|
-
for (const [entityType, scaler] of registry.getAllScalers()) {
|
|
185
|
-
const idleTimeout = scaler.options.idleTimeoutSeconds ?? 15;
|
|
186
|
-
this.spawnQueueService.registerIdleTimeout(entityType, idleTimeout);
|
|
187
|
-
}
|
|
188
|
-
this.logger.log('Registered with SpawnQueueService for distributed worker creation');
|
|
189
|
-
// Wire QueueEventsManager reference for hot-cache eviction on idle close
|
|
190
|
-
if (this.queueEventsManager) {
|
|
191
|
-
this.spawnQueueService.setQueueEventsManager(this.queueEventsManager);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Setup QueueEvents listening for job arrivals.
|
|
196
|
-
*/
|
|
197
|
-
async setupQueueEventsListening(registry, workerFactory) {
|
|
198
|
-
if (!this.queueEventsManager) {
|
|
199
|
-
this.logger.debug('QueueEventsManager not available, skipping event listening setup');
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
// Wire up QueueManager with QueueEventsManager for auto-listening
|
|
203
|
-
this.queueManager.setQueueEventsManager(this.queueEventsManager);
|
|
204
|
-
// Set up the callback for job arrivals
|
|
205
|
-
this.queueEventsManager.setOnJobArrivedCallback(async (entityType, entityId, _queueName) => {
|
|
206
|
-
const processor = registry.getProcessor(entityType);
|
|
207
|
-
const scaler = registry.getScaler(entityType);
|
|
208
|
-
if (scaler?.methods.onSpawnWorker) {
|
|
209
|
-
await scaler.scalerInstance[scaler.methods.onSpawnWorker](entityId);
|
|
210
|
-
}
|
|
211
|
-
if (processor) {
|
|
212
|
-
await workerFactory.createWorkerForEntity(entityType, entityId);
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
// Register entity patterns for all processors
|
|
216
|
-
for (const [entityType, processor] of registry.getAllProcessors()) {
|
|
217
|
-
this.queueEventsManager.registerEntityPattern(entityType, processor.queueNameFn, processor.workerNameFn);
|
|
218
|
-
}
|
|
219
|
-
this.logger.log('Queue events listening setup complete');
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Register spawn worker handler with ServiceQueueManager.
|
|
223
|
-
*/
|
|
224
|
-
async registerSpawnWorkerHandler(registry, workerFactory) {
|
|
225
|
-
if (!this.serviceQueueManager) {
|
|
226
|
-
this.logger.debug('ServiceQueueManager not available, skipping spawn handler registration');
|
|
227
|
-
return;
|
|
228
|
-
}
|
|
229
|
-
this.serviceQueueManager.registerSpawnWorkerHandler(async (entityType, entityId) => {
|
|
230
|
-
const scaler = registry.getScaler(entityType);
|
|
231
|
-
const processor = registry.getProcessor(entityType);
|
|
232
|
-
if (scaler?.methods.onSpawnWorker) {
|
|
233
|
-
await scaler.scalerInstance[scaler.methods.onSpawnWorker](entityId);
|
|
234
|
-
}
|
|
235
|
-
if (processor) {
|
|
236
|
-
await workerFactory.createWorkerForEntity(entityType, entityId);
|
|
237
|
-
}
|
|
238
|
-
if (!scaler?.methods.onSpawnWorker && !processor) {
|
|
239
|
-
this.logger.warn(`No spawn handler for entity type '${entityType}'. ` +
|
|
240
|
-
`Either add @OnSpawnWorker() to your scaler or register a @WorkerProcessor.`);
|
|
241
|
-
}
|
|
242
|
-
});
|
|
243
|
-
this.logger.debug('Spawn worker handler registered with ServiceQueueManager');
|
|
244
|
-
}
|
|
245
|
-
};
|
|
246
|
-
exports.ScalingRegistrationService = ScalingRegistrationService;
|
|
247
|
-
exports.ScalingRegistrationService = ScalingRegistrationService = ScalingRegistrationService_1 = __decorate([
|
|
248
|
-
(0, common_1.Injectable)(),
|
|
249
|
-
__param(2, (0, common_1.Optional)()),
|
|
250
|
-
__param(3, (0, common_1.Optional)()),
|
|
251
|
-
__param(4, (0, common_1.Optional)()),
|
|
252
|
-
__param(5, (0, common_1.Optional)()),
|
|
253
|
-
__param(6, (0, common_1.Inject)(constants_1.ATOMIC_QUEUES_CONFIG)),
|
|
254
|
-
__metadata("design:paramtypes", [worker_manager_1.WorkerManagerService,
|
|
255
|
-
queue_manager_1.QueueManagerService,
|
|
256
|
-
cron_manager_1.CronManagerService,
|
|
257
|
-
service_queue_1.ServiceQueueManager,
|
|
258
|
-
queue_events_manager_1.QueueEventsManagerService,
|
|
259
|
-
spawn_queue_1.SpawnQueueService, Object])
|
|
260
|
-
], ScalingRegistrationService);
|
|
261
|
-
//# sourceMappingURL=scaling-registration.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scaling-registration.service.js","sourceRoot":"","sources":["../../../src/services/processor-discovery/scaling-registration.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { Job } from 'bullmq';
|
|
2
|
-
import { ICommandBus, IQueryBus, IAtomicQueuesModuleConfig } from '../../domain';
|
|
3
|
-
import { WorkerManagerService } from '../worker-manager';
|
|
4
|
-
import { QueueManagerService } from '../queue-manager';
|
|
5
|
-
import { CommandDiscoveryService } from '../command-discovery';
|
|
6
|
-
import { ProcessorRegistry, RegisteredProcessor } from './processor-registry';
|
|
7
|
-
/**
|
|
8
|
-
* WorkerFactoryService
|
|
9
|
-
*
|
|
10
|
-
* Responsible for creating workers for entities and processing jobs
|
|
11
|
-
* through the registered handler pipeline.
|
|
12
|
-
*/
|
|
13
|
-
export declare class WorkerFactoryService {
|
|
14
|
-
private readonly workerManager;
|
|
15
|
-
private readonly queueManager;
|
|
16
|
-
private readonly commandDiscovery;
|
|
17
|
-
private readonly config;
|
|
18
|
-
private readonly logger;
|
|
19
|
-
private registry;
|
|
20
|
-
private commandBus;
|
|
21
|
-
private queryBus;
|
|
22
|
-
constructor(workerManager: WorkerManagerService, queueManager: QueueManagerService, commandDiscovery: CommandDiscoveryService, config: IAtomicQueuesModuleConfig);
|
|
23
|
-
/**
|
|
24
|
-
* Set the ProcessorRegistry reference (called by orchestrator after construction)
|
|
25
|
-
*/
|
|
26
|
-
setRegistry(registry: ProcessorRegistry): void;
|
|
27
|
-
/**
|
|
28
|
-
* Set the CommandBus for executing commands from QueueBus registry
|
|
29
|
-
*/
|
|
30
|
-
setCommandBus(bus: ICommandBus): void;
|
|
31
|
-
/**
|
|
32
|
-
* Set the QueryBus for executing queries from QueueBus registry
|
|
33
|
-
*/
|
|
34
|
-
setQueryBus(bus: IQueryBus): void;
|
|
35
|
-
/**
|
|
36
|
-
* Create a worker for an entity using the registered processor
|
|
37
|
-
*/
|
|
38
|
-
createWorkerForEntity(entityType: string, entityId: string): Promise<void>;
|
|
39
|
-
/**
|
|
40
|
-
* Process a job using the registered handlers
|
|
41
|
-
*
|
|
42
|
-
* Priority order:
|
|
43
|
-
* 1. Explicit @JobHandler on the processor class (if instance exists)
|
|
44
|
-
* 2. Auto-routing via @JobCommand/@JobQuery decorated classes
|
|
45
|
-
* 3. QueueBus registry lookup (class name as job name)
|
|
46
|
-
* 4. Wildcard @JobHandler('*') on the processor class (if instance exists)
|
|
47
|
-
*/
|
|
48
|
-
processJob(processor: RegisteredProcessor, job: Job, entityId: string): Promise<unknown>;
|
|
49
|
-
/**
|
|
50
|
-
* Execute a command/query from QueueBus registry
|
|
51
|
-
*/
|
|
52
|
-
private executeFromRegistry;
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=worker-factory.service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-factory.service.d.ts","sourceRoot":"","sources":["../../../src/services/processor-discovery/worker-factory.service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAiB,WAAW,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE9E;;;;;GAKG;AACH,qBACa,oBAAoB;IAQ7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IACjB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAE7C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAEhE,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,QAAQ,CAA0B;gBAGvB,aAAa,EAAE,oBAAoB,EACnC,YAAY,EAAE,mBAAmB,EACrB,gBAAgB,EAAE,uBAAuB,EAErD,MAAM,EAAE,yBAAyB;IAGpD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAI9C;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAIrC;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAIjC;;OAEG;IACG,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IA2DhB;;;;;;;;OAQG;IACG,UAAU,CACd,SAAS,EAAE,mBAAmB,EAC9B,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC;IA2CnB;;OAEG;YACW,mBAAmB;CA4BlC"}
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
var WorkerFactoryService_1;
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.WorkerFactoryService = void 0;
|
|
17
|
-
const common_1 = require("@nestjs/common");
|
|
18
|
-
const worker_manager_1 = require("../worker-manager");
|
|
19
|
-
const queue_manager_1 = require("../queue-manager");
|
|
20
|
-
const command_discovery_1 = require("../command-discovery");
|
|
21
|
-
const queue_bus_1 = require("../queue-bus");
|
|
22
|
-
const constants_1 = require("../constants");
|
|
23
|
-
/**
|
|
24
|
-
* WorkerFactoryService
|
|
25
|
-
*
|
|
26
|
-
* Responsible for creating workers for entities and processing jobs
|
|
27
|
-
* through the registered handler pipeline.
|
|
28
|
-
*/
|
|
29
|
-
let WorkerFactoryService = WorkerFactoryService_1 = class WorkerFactoryService {
|
|
30
|
-
constructor(workerManager, queueManager, commandDiscovery, config) {
|
|
31
|
-
this.workerManager = workerManager;
|
|
32
|
-
this.queueManager = queueManager;
|
|
33
|
-
this.commandDiscovery = commandDiscovery;
|
|
34
|
-
this.config = config;
|
|
35
|
-
this.logger = new common_1.Logger(WorkerFactoryService_1.name);
|
|
36
|
-
this.commandBus = null;
|
|
37
|
-
this.queryBus = null;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Set the ProcessorRegistry reference (called by orchestrator after construction)
|
|
41
|
-
*/
|
|
42
|
-
setRegistry(registry) {
|
|
43
|
-
this.registry = registry;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Set the CommandBus for executing commands from QueueBus registry
|
|
47
|
-
*/
|
|
48
|
-
setCommandBus(bus) {
|
|
49
|
-
this.commandBus = bus;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Set the QueryBus for executing queries from QueueBus registry
|
|
53
|
-
*/
|
|
54
|
-
setQueryBus(bus) {
|
|
55
|
-
this.queryBus = bus;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Create a worker for an entity using the registered processor
|
|
59
|
-
*/
|
|
60
|
-
async createWorkerForEntity(entityType, entityId) {
|
|
61
|
-
const processor = this.registry.getProcessor(entityType);
|
|
62
|
-
if (!processor) {
|
|
63
|
-
throw new Error(`No processor registered for entity type: ${entityType}`);
|
|
64
|
-
}
|
|
65
|
-
const workerName = processor.workerNameFn(entityId);
|
|
66
|
-
const queueName = processor.queueNameFn(entityId);
|
|
67
|
-
// Check if worker already exists
|
|
68
|
-
if (await this.workerManager.workerExists(workerName)) {
|
|
69
|
-
this.logger.debug(`Worker ${workerName} already exists, skipping`);
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
this.logger.log(`Creating worker ${workerName} for ${entityType}:${entityId}`);
|
|
73
|
-
// Ensure queue exists
|
|
74
|
-
this.queueManager.getOrCreateQueue(queueName);
|
|
75
|
-
// Create the worker with the processor
|
|
76
|
-
const workerConfig = {
|
|
77
|
-
concurrency: 1,
|
|
78
|
-
stalledInterval: 1000,
|
|
79
|
-
lockDuration: 30000,
|
|
80
|
-
heartbeatTTL: 3,
|
|
81
|
-
heartbeatInterval: 1000,
|
|
82
|
-
...this.config.workerDefaults,
|
|
83
|
-
...processor.options.workerConfig,
|
|
84
|
-
};
|
|
85
|
-
await this.workerManager.createWorker({
|
|
86
|
-
workerName,
|
|
87
|
-
queueName,
|
|
88
|
-
config: workerConfig,
|
|
89
|
-
processor: async (job) => {
|
|
90
|
-
return this.processJob(processor, job, entityId);
|
|
91
|
-
},
|
|
92
|
-
events: {
|
|
93
|
-
onReady: async () => {
|
|
94
|
-
this.logger.log(`Worker ${workerName} ready`);
|
|
95
|
-
this.registry.addActiveWorker(entityType, entityId);
|
|
96
|
-
},
|
|
97
|
-
onCompleted: async (job) => {
|
|
98
|
-
this.logger.debug(`Worker ${workerName}: Job ${job.id} completed`);
|
|
99
|
-
},
|
|
100
|
-
onFailed: async (job, error) => {
|
|
101
|
-
this.logger.error(`Worker ${workerName}: Job ${job?.id} failed: ${error.message}`);
|
|
102
|
-
},
|
|
103
|
-
onClosed: async () => {
|
|
104
|
-
this.logger.log(`Worker ${workerName} closed`);
|
|
105
|
-
this.registry.removeActiveWorker(entityType, entityId);
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Process a job using the registered handlers
|
|
112
|
-
*
|
|
113
|
-
* Priority order:
|
|
114
|
-
* 1. Explicit @JobHandler on the processor class (if instance exists)
|
|
115
|
-
* 2. Auto-routing via @JobCommand/@JobQuery decorated classes
|
|
116
|
-
* 3. QueueBus registry lookup (class name as job name)
|
|
117
|
-
* 4. Wildcard @JobHandler('*') on the processor class (if instance exists)
|
|
118
|
-
*/
|
|
119
|
-
async processJob(processor, job, entityId) {
|
|
120
|
-
const { processorInstance, jobHandlers, wildcardHandler, entityType } = processor;
|
|
121
|
-
const jobName = job.name;
|
|
122
|
-
// 1. Try to find specific @JobHandler (only if processor has an instance)
|
|
123
|
-
if (processorInstance) {
|
|
124
|
-
const handler = jobHandlers.get(jobName);
|
|
125
|
-
if (handler) {
|
|
126
|
-
return processorInstance[handler.method](job, entityId);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
// 2. Try auto-routing via @JobCommand/@JobQuery
|
|
130
|
-
if (this.commandDiscovery) {
|
|
131
|
-
const result = await this.commandDiscovery.executeJob(job, entityId, entityType);
|
|
132
|
-
if (result !== undefined) {
|
|
133
|
-
return result;
|
|
134
|
-
}
|
|
135
|
-
// Check if a handler exists (even if it returned undefined)
|
|
136
|
-
if (this.commandDiscovery.hasHandler(jobName, entityType)) {
|
|
137
|
-
return result;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
// 3. Try QueueBus registry lookup (job.name = class name like 'MakeBetCommand')
|
|
141
|
-
const registryEntry = queue_bus_1.QueueBus.getRegistered(jobName);
|
|
142
|
-
if (registryEntry) {
|
|
143
|
-
return this.executeFromRegistry(registryEntry, job, entityId);
|
|
144
|
-
}
|
|
145
|
-
// 4. Fall back to wildcard handler (only if processor has an instance)
|
|
146
|
-
if (processorInstance && wildcardHandler) {
|
|
147
|
-
return processorInstance[wildcardHandler.method](job, entityId);
|
|
148
|
-
}
|
|
149
|
-
// No handler found
|
|
150
|
-
this.logger.warn(`No handler found for job '${jobName}' on entity type '${entityType}'`);
|
|
151
|
-
return null;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Execute a command/query from QueueBus registry
|
|
155
|
-
*/
|
|
156
|
-
async executeFromRegistry(entry, job, entityId) {
|
|
157
|
-
const { targetClass, isQuery, className } = entry;
|
|
158
|
-
// Instantiate the command/query with job data
|
|
159
|
-
const instance = Object.assign(new targetClass(), job.data);
|
|
160
|
-
if (isQuery) {
|
|
161
|
-
if (!this.queryBus) {
|
|
162
|
-
this.logger.error(`QueryBus not set. Cannot execute query ${className}. Call setQueryBus() first.`);
|
|
163
|
-
return null;
|
|
164
|
-
}
|
|
165
|
-
return this.queryBus.execute(instance);
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
if (!this.commandBus) {
|
|
169
|
-
this.logger.error(`CommandBus not set. Cannot execute command ${className}. Call setCommandBus() first.`);
|
|
170
|
-
return null;
|
|
171
|
-
}
|
|
172
|
-
return this.commandBus.execute(instance);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
};
|
|
176
|
-
exports.WorkerFactoryService = WorkerFactoryService;
|
|
177
|
-
exports.WorkerFactoryService = WorkerFactoryService = WorkerFactoryService_1 = __decorate([
|
|
178
|
-
(0, common_1.Injectable)(),
|
|
179
|
-
__param(2, (0, common_1.Optional)()),
|
|
180
|
-
__param(3, (0, common_1.Inject)(constants_1.ATOMIC_QUEUES_CONFIG)),
|
|
181
|
-
__metadata("design:paramtypes", [worker_manager_1.WorkerManagerService,
|
|
182
|
-
queue_manager_1.QueueManagerService,
|
|
183
|
-
command_discovery_1.CommandDiscoveryService, Object])
|
|
184
|
-
], WorkerFactoryService);
|
|
185
|
-
//# sourceMappingURL=worker-factory.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-factory.service.js","sourceRoot":"","sources":["../../../src/services/processor-discovery/worker-factory.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { Job } from 'bullmq';
|
|
2
|
-
import { QueueManagerService } from '../queue-manager/queue-manager.service';
|
|
3
|
-
import { QueueEventsManagerService } from '../queue-events-manager/queue-events-manager.service';
|
|
4
|
-
import { IEntityConfig } from '../../domain/interfaces';
|
|
5
|
-
import { EnqueueOptions } from './queue-bus.types';
|
|
6
|
-
/**
|
|
7
|
-
* EntityTarget - Fluent builder for targeting a specific entity type's queue
|
|
8
|
-
* without needing a @WorkerProcessor class.
|
|
9
|
-
*
|
|
10
|
-
* This is the zero-boilerplate way to enqueue commands when you've configured
|
|
11
|
-
* entity defaults in the module config.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* await queueBus
|
|
15
|
-
* .forEntity('table')
|
|
16
|
-
* .enqueue(new MakeBetCommand(tableId, bets, player));
|
|
17
|
-
*/
|
|
18
|
-
export declare class EntityTarget {
|
|
19
|
-
private readonly queueManager;
|
|
20
|
-
private readonly entityType;
|
|
21
|
-
private readonly entityConfig;
|
|
22
|
-
private readonly keyPrefix;
|
|
23
|
-
private readonly queueEventsManager?;
|
|
24
|
-
private readonly logger;
|
|
25
|
-
constructor(queueManager: QueueManagerService, entityType: string, entityConfig: IEntityConfig | undefined, keyPrefix: string, queueEventsManager?: QueueEventsManagerService | undefined);
|
|
26
|
-
/**
|
|
27
|
-
* Get the queue name function from entity config or defaults
|
|
28
|
-
*/
|
|
29
|
-
private getQueueNameFn;
|
|
30
|
-
/**
|
|
31
|
-
* Extract entity ID using the priority chain (no processor-level default)
|
|
32
|
-
*/
|
|
33
|
-
private extractEntityId;
|
|
34
|
-
/**
|
|
35
|
-
* Enqueue a command/query for processing
|
|
36
|
-
*
|
|
37
|
-
* @param commandOrQuery - The command or query instance
|
|
38
|
-
* @param options - Optional settings (entityId override, jobOptions)
|
|
39
|
-
* @returns The created BullMQ job
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* await queueBus
|
|
43
|
-
* .forEntity('table')
|
|
44
|
-
* .enqueue(new MakeBetCommand(tableId, bets, player));
|
|
45
|
-
*/
|
|
46
|
-
enqueue<T extends object>(commandOrQuery: T, options?: EnqueueOptions): Promise<Job>;
|
|
47
|
-
/**
|
|
48
|
-
* Enqueue and wait for result
|
|
49
|
-
*/
|
|
50
|
-
enqueueAndWait<T extends object, R = any>(commandOrQuery: T, options?: EnqueueOptions & {
|
|
51
|
-
timeout?: number;
|
|
52
|
-
}): Promise<R>;
|
|
53
|
-
/**
|
|
54
|
-
* Enqueue multiple commands/queries in bulk
|
|
55
|
-
*/
|
|
56
|
-
enqueueBulk<T extends object>(commandsOrQueries: T[], options?: EnqueueOptions): Promise<Job[]>;
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=entity-target.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity-target.d.ts","sourceRoot":"","sources":["../../../src/services/queue-bus/entity-target.ts"],"names":[],"mappings":"AACA,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,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD;;;;;;;;;;;GAWG;AACH,qBAAa,YAAY;IAIrB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAPtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAGrC,YAAY,EAAE,mBAAmB,EACjC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,aAAa,GAAG,SAAS,EACvC,SAAS,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,yBAAyB,YAAA;IAGjE;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;;;;;;;;OAWG;IACG,OAAO,CAAC,CAAC,SAAS,MAAM,EAC5B,cAAc,EAAE,CAAC,EACjB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,GAAG,CAAC;IAsBf;;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;CA4BlB"}
|