@punks/backend-entity-manager 0.0.282 → 0.0.284
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/dist/cjs/index.js +71 -21
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/platforms/nest/extensions/jobs/abstractions/runner.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/commands/job-dispatch/command.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/providers/scheduler/index.d.ts +2 -3
- package/dist/cjs/types/platforms/nest/extensions/jobs/services/index.d.ts +2 -1
- package/dist/cjs/types/platforms/nest/extensions/jobs/services/jobs-service/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/services/jobs-service/service.d.ts +8 -3
- package/dist/cjs/types/platforms/nest/extensions/jobs/services/jobs-service/types.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/settings/index.d.ts +3 -0
- package/dist/cjs/types/platforms/nest/ioc/tokens/symbols.d.ts +0 -1
- package/dist/esm/index.js +72 -22
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/platforms/nest/extensions/jobs/abstractions/runner.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/commands/job-dispatch/command.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/providers/scheduler/index.d.ts +2 -3
- package/dist/esm/types/platforms/nest/extensions/jobs/services/index.d.ts +2 -1
- package/dist/esm/types/platforms/nest/extensions/jobs/services/jobs-service/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/services/jobs-service/service.d.ts +8 -3
- package/dist/esm/types/platforms/nest/extensions/jobs/services/jobs-service/types.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/settings/index.d.ts +3 -0
- package/dist/esm/types/platforms/nest/ioc/tokens/symbols.d.ts +0 -1
- package/dist/index.d.ts +22 -4
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -33784,10 +33784,11 @@ JobsMonitorTask = JobsMonitorTask_1 = __decorate([
|
|
|
33784
33784
|
__metadata("design:paramtypes", [Object, Object, cqrs.CommandBus])
|
|
33785
33785
|
], JobsMonitorTask);
|
|
33786
33786
|
|
|
33787
|
+
const jobsSettings = new AppInMemorySettings();
|
|
33788
|
+
|
|
33787
33789
|
var JobsScheduler_1;
|
|
33788
33790
|
let JobsScheduler = JobsScheduler_1 = class JobsScheduler {
|
|
33789
|
-
constructor(
|
|
33790
|
-
this.jobsSettings = jobsSettings;
|
|
33791
|
+
constructor(schedulerRegistry, schedulerTask, monitorTask) {
|
|
33791
33792
|
this.schedulerRegistry = schedulerRegistry;
|
|
33792
33793
|
this.schedulerTask = schedulerTask;
|
|
33793
33794
|
this.monitorTask = monitorTask;
|
|
@@ -33823,18 +33824,78 @@ let JobsScheduler = JobsScheduler_1 = class JobsScheduler {
|
|
|
33823
33824
|
this.registerJobsScheduler();
|
|
33824
33825
|
this.registerJobsMonitor();
|
|
33825
33826
|
}
|
|
33827
|
+
get jobsSettings() {
|
|
33828
|
+
return jobsSettings.value;
|
|
33829
|
+
}
|
|
33826
33830
|
};
|
|
33827
33831
|
JobsScheduler = JobsScheduler_1 = __decorate([
|
|
33828
33832
|
common.Injectable(),
|
|
33829
|
-
|
|
33830
|
-
__metadata("design:paramtypes", [Object, schedule.SchedulerRegistry,
|
|
33833
|
+
__metadata("design:paramtypes", [schedule.SchedulerRegistry,
|
|
33831
33834
|
JobsSchedulerTask,
|
|
33832
33835
|
JobsMonitorTask])
|
|
33833
33836
|
], JobsScheduler);
|
|
33834
33837
|
|
|
33835
33838
|
const JobsProviders = [JobsScheduler];
|
|
33836
33839
|
|
|
33837
|
-
|
|
33840
|
+
class JobDefinitionUpdateCommand {
|
|
33841
|
+
constructor(input) {
|
|
33842
|
+
this.input = input;
|
|
33843
|
+
}
|
|
33844
|
+
}
|
|
33845
|
+
|
|
33846
|
+
exports.JobsService = class JobsService {
|
|
33847
|
+
constructor(definitions, instances, commandBus) {
|
|
33848
|
+
this.definitions = definitions;
|
|
33849
|
+
this.instances = instances;
|
|
33850
|
+
this.commandBus = commandBus;
|
|
33851
|
+
this.triggerJob = async (input) => {
|
|
33852
|
+
const job = await this.definitions.getDefinitionByUid(input.jobUid);
|
|
33853
|
+
if (!job) {
|
|
33854
|
+
throw new Error(`Job ${input.jobUid} not found`);
|
|
33855
|
+
}
|
|
33856
|
+
const schedule = input.scheduleUid
|
|
33857
|
+
? job.schedules.find((x) => x.uid === input.scheduleUid)
|
|
33858
|
+
: undefined;
|
|
33859
|
+
if (input.scheduleUid && !schedule) {
|
|
33860
|
+
throw new Error(`Job ${input.jobUid} schedule ${input.scheduleUid} not found`);
|
|
33861
|
+
}
|
|
33862
|
+
return await this.commandBus.execute(new JobDispatchCommand({
|
|
33863
|
+
job,
|
|
33864
|
+
schedule,
|
|
33865
|
+
runType: exports.JobRunType.OnDemand,
|
|
33866
|
+
payload: input.payload,
|
|
33867
|
+
}));
|
|
33868
|
+
};
|
|
33869
|
+
this.updateJob = async (input) => {
|
|
33870
|
+
this.commandBus.execute(new JobDefinitionUpdateCommand({
|
|
33871
|
+
job: input,
|
|
33872
|
+
}));
|
|
33873
|
+
};
|
|
33874
|
+
this.instanceMonitor = async (input) => {
|
|
33875
|
+
const { instanceId } = input;
|
|
33876
|
+
const instance = await this.instances.getById(instanceId);
|
|
33877
|
+
if (!instance) {
|
|
33878
|
+
throw new Error(`Job instance ${instanceId} not found`);
|
|
33879
|
+
}
|
|
33880
|
+
const job = await this.definitions.getDefinitionByUid(instance.jobUid);
|
|
33881
|
+
if (!job) {
|
|
33882
|
+
throw new Error(`Job definition ${instance.jobUid} not found`);
|
|
33883
|
+
}
|
|
33884
|
+
return await this.commandBus.execute(new JobStatusMonitorCommand({
|
|
33885
|
+
instanceId,
|
|
33886
|
+
job,
|
|
33887
|
+
}));
|
|
33888
|
+
};
|
|
33889
|
+
}
|
|
33890
|
+
};
|
|
33891
|
+
exports.JobsService = __decorate([
|
|
33892
|
+
common.Injectable(),
|
|
33893
|
+
__param(0, common.Inject(getEntityManagerProviderToken("JobDefinitionsRepository"))),
|
|
33894
|
+
__param(1, common.Inject(getEntityManagerProviderToken("JobInstancesRepository"))),
|
|
33895
|
+
__metadata("design:paramtypes", [Object, Object, cqrs.CommandBus])
|
|
33896
|
+
], exports.JobsService);
|
|
33897
|
+
|
|
33898
|
+
const JobsServices = [exports.JobsService];
|
|
33838
33899
|
|
|
33839
33900
|
const JOB_PROVIDER = Symbol.for("WP.JOB_PROVIDER");
|
|
33840
33901
|
|
|
@@ -33902,7 +33963,7 @@ let JobDispatchHandler = JobDispatchHandler_1 = class JobDispatchHandler {
|
|
|
33902
33963
|
});
|
|
33903
33964
|
}
|
|
33904
33965
|
async dispatchJob(command) {
|
|
33905
|
-
const { input: { job, schedule, runType }, } = command;
|
|
33966
|
+
const { input: { job, schedule, runType, payload }, } = command;
|
|
33906
33967
|
const instanceId = backendCore.newUuid();
|
|
33907
33968
|
try {
|
|
33908
33969
|
this.logger.info(`JOB DISPATCH -> dispatching started job ${job.uid} -> ${instanceId}`);
|
|
@@ -33916,6 +33977,7 @@ let JobDispatchHandler = JobDispatchHandler_1 = class JobDispatchHandler {
|
|
|
33916
33977
|
definition: job,
|
|
33917
33978
|
schedule,
|
|
33918
33979
|
instanceId,
|
|
33980
|
+
payload,
|
|
33919
33981
|
});
|
|
33920
33982
|
await this.instances.updateInstance(instanceId, {
|
|
33921
33983
|
status: exports.JobStatus.Ready,
|
|
@@ -34006,12 +34068,6 @@ JobStatusMonitorHandler = JobStatusMonitorHandler_1 = __decorate([
|
|
|
34006
34068
|
JobProviderExecutor, Object])
|
|
34007
34069
|
], JobStatusMonitorHandler);
|
|
34008
34070
|
|
|
34009
|
-
class JobDefinitionUpdateCommand {
|
|
34010
|
-
constructor(input) {
|
|
34011
|
-
this.input = input;
|
|
34012
|
-
}
|
|
34013
|
-
}
|
|
34014
|
-
|
|
34015
34071
|
var JobDefinitionUpdateHandler_1;
|
|
34016
34072
|
let JobDefinitionUpdateHandler = JobDefinitionUpdateHandler_1 = class JobDefinitionUpdateHandler {
|
|
34017
34073
|
constructor(lock, definitions, executor) {
|
|
@@ -34077,16 +34133,10 @@ exports.JobsModule = JobsModule_1 = class JobsModule {
|
|
|
34077
34133
|
await this.jobsProviderFactory.initialize();
|
|
34078
34134
|
}
|
|
34079
34135
|
static forRoot(input) {
|
|
34136
|
+
jobsSettings.initialize(input);
|
|
34080
34137
|
return {
|
|
34081
34138
|
module: JobsModule_1,
|
|
34082
34139
|
...ModuleData$7,
|
|
34083
|
-
providers: [
|
|
34084
|
-
...ModuleData$7.providers,
|
|
34085
|
-
{
|
|
34086
|
-
provide: getEntityManagerProviderToken("JobsModuleSettings"),
|
|
34087
|
-
useValue: input,
|
|
34088
|
-
},
|
|
34089
|
-
],
|
|
34090
34140
|
};
|
|
34091
34141
|
}
|
|
34092
34142
|
};
|
|
@@ -40085,13 +40135,13 @@ let AwsJobsProvider = class AwsJobsProvider {
|
|
|
40085
40135
|
this.awsBatchService = awsBatchService;
|
|
40086
40136
|
}
|
|
40087
40137
|
async dispatch(input) {
|
|
40088
|
-
const { definition, schedule, instanceId } = input;
|
|
40138
|
+
const { definition, schedule, instanceId, payload } = input;
|
|
40089
40139
|
const awsInvocationParams = schedule?.invocationOverrides;
|
|
40090
40140
|
await this.awsBatchService.submitJob({
|
|
40091
40141
|
instanceId,
|
|
40092
40142
|
jobUid: definition.uid,
|
|
40093
40143
|
overrides: {
|
|
40094
|
-
command: awsInvocationParams?.startCommand,
|
|
40144
|
+
command: awsInvocationParams?.startCommand?.map((x) => x.replace("{payload}", JSON.stringify(payload ?? {}))),
|
|
40095
40145
|
},
|
|
40096
40146
|
});
|
|
40097
40147
|
}
|