@punks/backend-entity-manager 0.0.263 → 0.0.265
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 +10647 -209
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/platforms/nest/extensions/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/abstractions/definition.d.ts +20 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/abstractions/index.d.ts +5 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/abstractions/instance.d.ts +27 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/abstractions/provider.d.ts +6 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/abstractions/repository.d.ts +18 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/abstractions/runner.d.ts +32 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/abstractions/settings.d.ts +10 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/commands/index.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/commands/job-dispatch/command.d.ts +10 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/commands/job-dispatch/handler.d.ts +14 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/commands/job-status-monitor/command.d.ts +9 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/commands/job-status-monitor/handler.d.ts +14 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/commands/job-update/command.d.ts +8 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/commands/job-update/handler.d.ts +14 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/decorators/constants.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/decorators/decorators.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/module.d.ts +11 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/processors/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/processors/runnable-jobs/index.d.ts +7 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/processors/runner/index.d.ts +10 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/providers/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/providers/scheduler/index.d.ts +17 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/resolvers/factory/index.d.ts +10 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/resolvers/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/services/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/task/jobs-monitor/index.d.ts +11 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/task/jobs-scheduler/index.d.ts +13 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/utils/cron.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/extensions/jobs/utils/status.d.ts +5 -0
- package/dist/cjs/types/platforms/nest/ioc/tokens/index.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/ioc/tokens/symbols.d.ts +3 -0
- package/dist/cjs/types/platforms/nest/plugins/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/plugins/jobs/aws-batch/index.d.ts +3 -0
- package/dist/cjs/types/platforms/nest/plugins/jobs/aws-batch/manager/index.d.ts +19 -0
- package/dist/cjs/types/platforms/nest/plugins/jobs/aws-batch/manager/types.d.ts +19 -0
- package/dist/cjs/types/platforms/nest/plugins/jobs/aws-batch/models/index.d.ts +10 -0
- package/dist/cjs/types/platforms/nest/plugins/jobs/aws-batch/module.d.ts +5 -0
- package/dist/cjs/types/platforms/nest/plugins/jobs/aws-batch/provider/index.d.ts +10 -0
- package/dist/cjs/types/platforms/nest/plugins/jobs/aws-batch/settings/index.d.ts +8 -0
- package/dist/cjs/types/platforms/nest/plugins/jobs/index.d.ts +1 -0
- package/dist/esm/index.js +10764 -329
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/platforms/nest/extensions/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/abstractions/definition.d.ts +20 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/abstractions/index.d.ts +5 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/abstractions/instance.d.ts +27 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/abstractions/provider.d.ts +6 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/abstractions/repository.d.ts +18 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/abstractions/runner.d.ts +32 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/abstractions/settings.d.ts +10 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/commands/index.d.ts +4 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/commands/job-dispatch/command.d.ts +10 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/commands/job-dispatch/handler.d.ts +14 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/commands/job-status-monitor/command.d.ts +9 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/commands/job-status-monitor/handler.d.ts +14 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/commands/job-update/command.d.ts +8 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/commands/job-update/handler.d.ts +14 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/decorators/constants.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/decorators/decorators.d.ts +2 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/module.d.ts +11 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/processors/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/processors/runnable-jobs/index.d.ts +7 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/processors/runner/index.d.ts +10 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/providers/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/providers/scheduler/index.d.ts +17 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/resolvers/factory/index.d.ts +10 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/resolvers/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/services/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/task/jobs-monitor/index.d.ts +11 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/task/jobs-scheduler/index.d.ts +13 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/utils/cron.d.ts +2 -0
- package/dist/esm/types/platforms/nest/extensions/jobs/utils/status.d.ts +5 -0
- package/dist/esm/types/platforms/nest/ioc/tokens/index.d.ts +1 -1
- package/dist/esm/types/platforms/nest/ioc/tokens/symbols.d.ts +3 -0
- package/dist/esm/types/platforms/nest/plugins/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/plugins/jobs/aws-batch/index.d.ts +3 -0
- package/dist/esm/types/platforms/nest/plugins/jobs/aws-batch/manager/index.d.ts +19 -0
- package/dist/esm/types/platforms/nest/plugins/jobs/aws-batch/manager/types.d.ts +19 -0
- package/dist/esm/types/platforms/nest/plugins/jobs/aws-batch/models/index.d.ts +10 -0
- package/dist/esm/types/platforms/nest/plugins/jobs/aws-batch/module.d.ts +5 -0
- package/dist/esm/types/platforms/nest/plugins/jobs/aws-batch/provider/index.d.ts +10 -0
- package/dist/esm/types/platforms/nest/plugins/jobs/aws-batch/settings/index.d.ts +8 -0
- package/dist/esm/types/platforms/nest/plugins/jobs/index.d.ts +1 -0
- package/dist/index.d.ts +205 -2
- package/package.json +27 -19
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare enum JobConcurrency {
|
|
2
|
+
Sequential = "sequential",
|
|
3
|
+
Parallel = "parallel"
|
|
4
|
+
}
|
|
5
|
+
export declare class JobSchedule<TInvocationParams> {
|
|
6
|
+
uid: string;
|
|
7
|
+
cron: string;
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
invocationOverrides?: TInvocationParams;
|
|
10
|
+
}
|
|
11
|
+
export type JobDefinition<TInfrastructureParams, TInvocationParams> = {
|
|
12
|
+
id: string;
|
|
13
|
+
uid: string;
|
|
14
|
+
name: string;
|
|
15
|
+
provider: string;
|
|
16
|
+
infrastructureParams: TInfrastructureParams;
|
|
17
|
+
invocationParams: TInvocationParams;
|
|
18
|
+
schedules: JobSchedule<TInvocationParams>[];
|
|
19
|
+
concurrency: JobConcurrency;
|
|
20
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare enum JobStatus {
|
|
2
|
+
Created = "created",
|
|
3
|
+
Ready = "ready",
|
|
4
|
+
Initializing = "initializing",
|
|
5
|
+
Running = "running",
|
|
6
|
+
Completed = "completed",
|
|
7
|
+
Faulted = "faulted",
|
|
8
|
+
InitializationError = "initializationError"
|
|
9
|
+
}
|
|
10
|
+
export declare enum JobRunType {
|
|
11
|
+
Scheduled = "scheduled",
|
|
12
|
+
OnDemand = "onDemand"
|
|
13
|
+
}
|
|
14
|
+
export declare class JobInstance {
|
|
15
|
+
id: string;
|
|
16
|
+
scheduleUid: string;
|
|
17
|
+
jobUid: string;
|
|
18
|
+
runType: JobRunType;
|
|
19
|
+
status: JobStatus;
|
|
20
|
+
insertTime?: Date;
|
|
21
|
+
startTime?: Date;
|
|
22
|
+
endTime?: Date;
|
|
23
|
+
result?: any;
|
|
24
|
+
error?: any;
|
|
25
|
+
createdOn?: Date;
|
|
26
|
+
updatedOn?: Date;
|
|
27
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { JobDefinition } from "./definition";
|
|
2
|
+
import { JobInstance, JobStatus } from "./instance";
|
|
3
|
+
type JobData = Omit<JobDefinition<unknown, unknown>, "id" | "createdOn" | "updatedOn">;
|
|
4
|
+
export interface IJobDefinitionsRepository {
|
|
5
|
+
all(): Promise<JobDefinition<unknown, unknown>[]>;
|
|
6
|
+
getByUid(uid: string): Promise<JobDefinition<unknown, unknown> | undefined>;
|
|
7
|
+
ensure(data: JobData): Promise<JobDefinition<unknown, unknown>>;
|
|
8
|
+
create(data: JobData): Promise<JobDefinition<unknown, unknown>>;
|
|
9
|
+
update(uid: string, data: JobData): Promise<JobDefinition<unknown, unknown>>;
|
|
10
|
+
}
|
|
11
|
+
export interface IJobInstancesRepository {
|
|
12
|
+
get(id: string): Promise<JobInstance>;
|
|
13
|
+
getByStatus(...status: JobStatus[]): Promise<JobInstance[]>;
|
|
14
|
+
getLastInstance(jobUid: string, scheduleUid: string): Promise<JobInstance | undefined>;
|
|
15
|
+
append(job: JobDefinition<unknown, unknown>, data: Pick<JobInstance, "id" | "insertTime" | "scheduleUid" | "runType">): Promise<JobInstance>;
|
|
16
|
+
update(instanceId: string, data: Pick<JobInstance, "startTime" | "endTime" | "status" | "result" | "error">): Promise<JobInstance>;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { JobDefinition, JobSchedule } from "./definition";
|
|
2
|
+
export interface JobDispatchInput {
|
|
3
|
+
definition: JobDefinition<unknown, unknown>;
|
|
4
|
+
schedule: JobSchedule<unknown>;
|
|
5
|
+
instanceId: string;
|
|
6
|
+
}
|
|
7
|
+
export declare enum JobProviderState {
|
|
8
|
+
Initializing = "initializing",
|
|
9
|
+
Running = "running",
|
|
10
|
+
Completed = "completed",
|
|
11
|
+
CompletedWithErrors = "completedWithErrors"
|
|
12
|
+
}
|
|
13
|
+
export interface GetJobStatusInput {
|
|
14
|
+
definition: JobDefinition<unknown, unknown>;
|
|
15
|
+
instanceId: string;
|
|
16
|
+
}
|
|
17
|
+
export interface JobStatusResult {
|
|
18
|
+
state: JobProviderState;
|
|
19
|
+
error?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface CancelJobStatusInput {
|
|
22
|
+
instanceId: string;
|
|
23
|
+
}
|
|
24
|
+
export interface UpsertJobDefinitionInput {
|
|
25
|
+
definition: JobDefinition<unknown, unknown>;
|
|
26
|
+
}
|
|
27
|
+
export interface JobProviderInstance {
|
|
28
|
+
dispatch(input: JobDispatchInput): Promise<void>;
|
|
29
|
+
upsertJobDefinition(input: UpsertJobDefinitionInput): Promise<void>;
|
|
30
|
+
getJobStatus(input: GetJobStatusInput): Promise<JobStatusResult>;
|
|
31
|
+
cancelJob(input: CancelJobStatusInput): Promise<void>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { JobDispatchHandler } from "./job-dispatch/handler";
|
|
2
|
+
import { JobStatusMonitorHandler } from "./job-status-monitor/handler";
|
|
3
|
+
import { JobDefinitionUpdateHandler } from "./job-update/handler";
|
|
4
|
+
export declare const JobHandlers: (typeof JobDispatchHandler | typeof JobStatusMonitorHandler | typeof JobDefinitionUpdateHandler)[];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JobDefinition, JobRunType, JobSchedule } from "../../abstractions";
|
|
2
|
+
export interface JobDispatchCommandInput {
|
|
3
|
+
job: JobDefinition<unknown, unknown>;
|
|
4
|
+
schedule: JobSchedule<unknown>;
|
|
5
|
+
runType: JobRunType;
|
|
6
|
+
}
|
|
7
|
+
export declare class JobDispatchCommand {
|
|
8
|
+
readonly input: JobDispatchCommandInput;
|
|
9
|
+
constructor(input: JobDispatchCommandInput);
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ICommandHandler } from "@nestjs/cqrs";
|
|
2
|
+
import { JobDispatchCommand } from "./command";
|
|
3
|
+
import { OperationLockService } from "../../../../services";
|
|
4
|
+
import { IJobInstancesRepository } from "../../abstractions/repository";
|
|
5
|
+
import { JobProviderExecutor } from "../../processors/runner";
|
|
6
|
+
export declare class JobDispatchHandler implements ICommandHandler<JobDispatchCommand> {
|
|
7
|
+
private readonly lock;
|
|
8
|
+
private readonly executor;
|
|
9
|
+
private readonly instances;
|
|
10
|
+
private readonly logger;
|
|
11
|
+
constructor(lock: OperationLockService, executor: JobProviderExecutor, instances: IJobInstancesRepository);
|
|
12
|
+
execute(command: JobDispatchCommand): Promise<void>;
|
|
13
|
+
private dispatchJob;
|
|
14
|
+
}
|
package/dist/cjs/types/platforms/nest/extensions/jobs/commands/job-status-monitor/command.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { JobDefinition } from "../../abstractions";
|
|
2
|
+
export interface JobStatusUpdateMonitorInput {
|
|
3
|
+
job: JobDefinition<unknown, unknown>;
|
|
4
|
+
instanceId: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class JobStatusMonitorCommand {
|
|
7
|
+
readonly input: JobStatusUpdateMonitorInput;
|
|
8
|
+
constructor(input: JobStatusUpdateMonitorInput);
|
|
9
|
+
}
|
package/dist/cjs/types/platforms/nest/extensions/jobs/commands/job-status-monitor/handler.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ICommandHandler } from "@nestjs/cqrs";
|
|
2
|
+
import { JobStatusMonitorCommand } from "./command";
|
|
3
|
+
import { IJobInstancesRepository } from "../../abstractions";
|
|
4
|
+
import { OperationLockService } from "../../../../services";
|
|
5
|
+
import { JobProviderExecutor } from "../../processors/runner";
|
|
6
|
+
export declare class JobStatusMonitorHandler implements ICommandHandler<JobStatusMonitorCommand> {
|
|
7
|
+
private readonly lock;
|
|
8
|
+
private readonly executor;
|
|
9
|
+
private readonly instances;
|
|
10
|
+
private readonly logger;
|
|
11
|
+
constructor(lock: OperationLockService, executor: JobProviderExecutor, instances: IJobInstancesRepository);
|
|
12
|
+
execute(command: JobStatusMonitorCommand): Promise<void>;
|
|
13
|
+
private watchJob;
|
|
14
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { JobDefinition } from "../../abstractions";
|
|
2
|
+
export interface JobDefinitionUpdateInput {
|
|
3
|
+
job: JobDefinition<unknown, unknown>;
|
|
4
|
+
}
|
|
5
|
+
export declare class JobDefinitionUpdateCommand {
|
|
6
|
+
readonly input: JobDefinitionUpdateInput;
|
|
7
|
+
constructor(input: JobDefinitionUpdateInput);
|
|
8
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ICommandHandler } from "@nestjs/cqrs";
|
|
2
|
+
import { JobDefinitionUpdateCommand } from "./command";
|
|
3
|
+
import { OperationLockService } from "../../../../services";
|
|
4
|
+
import { IJobDefinitionsRepository } from "../../abstractions";
|
|
5
|
+
import { JobProviderExecutor } from "../../processors/runner";
|
|
6
|
+
export declare class JobDefinitionUpdateHandler implements ICommandHandler<JobDefinitionUpdateCommand> {
|
|
7
|
+
private readonly lock;
|
|
8
|
+
private readonly definitions;
|
|
9
|
+
private readonly executor;
|
|
10
|
+
private readonly logger;
|
|
11
|
+
constructor(lock: OperationLockService, definitions: IJobDefinitionsRepository, executor: JobProviderExecutor);
|
|
12
|
+
execute(command: JobDefinitionUpdateCommand): Promise<void>;
|
|
13
|
+
private updateJob;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const JOB_PROVIDER: unique symbol;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DynamicModule, OnModuleInit } from "@nestjs/common";
|
|
2
|
+
import { JobsSettings } from "./abstractions/settings";
|
|
3
|
+
import { JobsScheduler } from "./providers/scheduler";
|
|
4
|
+
import { JobsProviderFactory } from "./resolvers/factory";
|
|
5
|
+
export declare class JobsModule implements OnModuleInit {
|
|
6
|
+
private readonly jobsScheduler;
|
|
7
|
+
private readonly jobsProviderFactory;
|
|
8
|
+
constructor(jobsScheduler: JobsScheduler, jobsProviderFactory: JobsProviderFactory);
|
|
9
|
+
onModuleInit(): Promise<void>;
|
|
10
|
+
static forRoot(input: JobsSettings): DynamicModule;
|
|
11
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IJobInstancesRepository, JobDefinition, JobSchedule } from "../../abstractions";
|
|
2
|
+
export declare class RunnableJobsProcessor {
|
|
3
|
+
private readonly jobInstances;
|
|
4
|
+
private readonly logger;
|
|
5
|
+
constructor(jobInstances: IJobInstancesRepository);
|
|
6
|
+
shouldRun(job: JobDefinition<unknown, unknown>, schedule: JobSchedule<unknown>): Promise<boolean>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { GetJobStatusInput, JobDispatchInput, UpsertJobDefinitionInput } from "../../abstractions/runner";
|
|
2
|
+
import { JobsProviderFactory } from "../../resolvers/factory";
|
|
3
|
+
export declare class JobProviderExecutor {
|
|
4
|
+
private readonly factory;
|
|
5
|
+
constructor(factory: JobsProviderFactory);
|
|
6
|
+
dispatch(input: JobDispatchInput): Promise<void>;
|
|
7
|
+
upsertJobDefinition(input: UpsertJobDefinitionInput): Promise<void>;
|
|
8
|
+
getStatus(input: GetJobStatusInput): Promise<import("../../abstractions/runner").JobStatusResult>;
|
|
9
|
+
private getProvider;
|
|
10
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SchedulerRegistry } from "@nestjs/schedule";
|
|
2
|
+
import { JobsSettings } from "../../abstractions/settings";
|
|
3
|
+
import { JobsSchedulerTask } from "../../task/jobs-scheduler";
|
|
4
|
+
import { JobsMonitorTask } from "../../task/jobs-monitor";
|
|
5
|
+
export declare class JobsScheduler {
|
|
6
|
+
private readonly jobsSettings;
|
|
7
|
+
private readonly schedulerRegistry;
|
|
8
|
+
private readonly schedulerTask;
|
|
9
|
+
private readonly monitorTask;
|
|
10
|
+
private readonly logger;
|
|
11
|
+
constructor(jobsSettings: JobsSettings, schedulerRegistry: SchedulerRegistry, schedulerTask: JobsSchedulerTask, monitorTask: JobsMonitorTask);
|
|
12
|
+
register(): void;
|
|
13
|
+
private registerJobsScheduler;
|
|
14
|
+
private registerJobsMonitor;
|
|
15
|
+
private batchJobsSchedule;
|
|
16
|
+
private batchJobsMonitor;
|
|
17
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JobProviderInstance } from "../../abstractions/runner";
|
|
2
|
+
import { CustomDiscoveryService } from "../../../../ioc";
|
|
3
|
+
export declare class JobsProviderFactory {
|
|
4
|
+
private readonly discover;
|
|
5
|
+
private readonly logger;
|
|
6
|
+
private providers;
|
|
7
|
+
constructor(discover: CustomDiscoveryService);
|
|
8
|
+
initialize(): Promise<void>;
|
|
9
|
+
getProvider(id: string): JobProviderInstance;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const JobsServices: never[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CommandBus } from "@nestjs/cqrs";
|
|
2
|
+
import { IJobDefinitionsRepository, IJobInstancesRepository } from "../../abstractions/repository";
|
|
3
|
+
export declare class JobsMonitorTask {
|
|
4
|
+
private readonly jobInstances;
|
|
5
|
+
private readonly jobDefinitions;
|
|
6
|
+
private readonly commandBus;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(jobInstances: IJobInstancesRepository, jobDefinitions: IJobDefinitionsRepository, commandBus: CommandBus);
|
|
9
|
+
run(): Promise<void>;
|
|
10
|
+
private monitorInstance;
|
|
11
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CommandBus } from "@nestjs/cqrs";
|
|
2
|
+
import { IJobDefinitionsRepository } from "../../abstractions";
|
|
3
|
+
import { RunnableJobsProcessor } from "../../processors/runnable-jobs";
|
|
4
|
+
export declare class JobsSchedulerTask {
|
|
5
|
+
private readonly jobDefinitions;
|
|
6
|
+
private readonly evaluator;
|
|
7
|
+
private readonly commandBus;
|
|
8
|
+
private readonly logger;
|
|
9
|
+
constructor(jobDefinitions: IJobDefinitionsRepository, evaluator: RunnableJobsProcessor, commandBus: CommandBus);
|
|
10
|
+
run(): Promise<void>;
|
|
11
|
+
private evaluateJob;
|
|
12
|
+
private evaluateJobSchedule;
|
|
13
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { JobStatus } from "../abstractions";
|
|
2
|
+
export declare const isJobPending: (status: JobStatus) => boolean;
|
|
3
|
+
export declare const isJobRunning: (status: JobStatus) => boolean;
|
|
4
|
+
export declare const isJobStarted: (status: JobStatus) => boolean;
|
|
5
|
+
export declare const isJobEnded: (status: JobStatus) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { buildProviderToken } from "./builder";
|
|
2
|
-
export {
|
|
2
|
+
export { getEntityManagerProviderToken } from "./symbols";
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export declare const EntityManagerProviderToken: {
|
|
2
2
|
OperationsLockRepository: {};
|
|
3
|
+
JobsModuleSettings: {};
|
|
4
|
+
JobInstancesRepository: {};
|
|
5
|
+
JobDefinitionsRepository: {};
|
|
3
6
|
};
|
|
4
7
|
export declare const getEntityManagerProviderToken: (name: keyof typeof EntityManagerProviderToken) => string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BathJobDefinition, GetBatchJobStatusInput, SubmitBatchJobInput } from "./types";
|
|
2
|
+
import { AwsBatchSettings } from "../settings";
|
|
3
|
+
export declare class AwsBatchService {
|
|
4
|
+
private readonly awsSettings;
|
|
5
|
+
private readonly logger;
|
|
6
|
+
constructor(awsSettings: AwsBatchSettings);
|
|
7
|
+
cancelJobInput(): Promise<void>;
|
|
8
|
+
getJobInstance(input: GetBatchJobStatusInput): Promise<import("@aws-sdk/client-batch").JobSummary | undefined>;
|
|
9
|
+
submitJob(input: SubmitBatchJobInput): Promise<void>;
|
|
10
|
+
ensureJobDefinition(definition: BathJobDefinition): Promise<import("@aws-sdk/client-batch").JobDefinition>;
|
|
11
|
+
private unregisterJobDefinition;
|
|
12
|
+
private registerJobDefinition;
|
|
13
|
+
private getLatestJobDefinition;
|
|
14
|
+
private getActiveJobDefinitions;
|
|
15
|
+
private ensureQueue;
|
|
16
|
+
private createQueue;
|
|
17
|
+
private getQueue;
|
|
18
|
+
private client;
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type BathJobDefinition = {
|
|
2
|
+
jobUid: string;
|
|
3
|
+
image: string;
|
|
4
|
+
memory: number;
|
|
5
|
+
vcpu: number;
|
|
6
|
+
defaultCommand: string[];
|
|
7
|
+
};
|
|
8
|
+
export type BatchJobOverrides = {
|
|
9
|
+
command?: string[];
|
|
10
|
+
};
|
|
11
|
+
export type SubmitBatchJobInput = {
|
|
12
|
+
overrides?: BatchJobOverrides;
|
|
13
|
+
jobUid: string;
|
|
14
|
+
instanceId: string;
|
|
15
|
+
};
|
|
16
|
+
export type GetBatchJobStatusInput = {
|
|
17
|
+
jobUid: string;
|
|
18
|
+
instanceId: string;
|
|
19
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JobDefinition } from "../../../../extensions/jobs/abstractions/definition";
|
|
2
|
+
export type AwsBatchInfrastructureParams = {
|
|
3
|
+
vcpu: number;
|
|
4
|
+
memory: number;
|
|
5
|
+
dockerImage: string;
|
|
6
|
+
};
|
|
7
|
+
export type AwsBatchInvocationParams = {
|
|
8
|
+
startCommand: string[];
|
|
9
|
+
};
|
|
10
|
+
export type AwsJobDefinition = JobDefinition<AwsBatchInfrastructureParams, AwsBatchInvocationParams>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CancelJobStatusInput, GetJobStatusInput, JobDispatchInput, JobProviderInstance, JobStatusResult, UpsertJobDefinitionInput } from "../../../../extensions/jobs/abstractions/runner";
|
|
2
|
+
import { AwsBatchService } from "../manager";
|
|
3
|
+
export declare class AwsJobsProvider implements JobProviderInstance {
|
|
4
|
+
private readonly awsBatchService;
|
|
5
|
+
constructor(awsBatchService: AwsBatchService);
|
|
6
|
+
dispatch(input: JobDispatchInput): Promise<void>;
|
|
7
|
+
upsertJobDefinition(input: UpsertJobDefinitionInput): Promise<void>;
|
|
8
|
+
getJobStatus(input: GetJobStatusInput): Promise<JobStatusResult>;
|
|
9
|
+
cancelJob(input: CancelJobStatusInput): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./aws-batch";
|