@ -4,8 +4,8 @@ import { Process } from 'src/engine/integrations/message-queue/decorators/proces
|
||||
import { Processor } from 'src/engine/integrations/message-queue/decorators/processor.decorator';
|
||||
import { MessageQueue } from 'src/engine/integrations/message-queue/message-queue.constants';
|
||||
import { WorkflowRunStatus } from 'src/modules/workflow/common/standard-objects/workflow-run.workspace-entity';
|
||||
import { WorkflowCommonService } from 'src/modules/workflow/common/workflow-common.services';
|
||||
import { WorkflowRunnerService } from 'src/modules/workflow/workflow-runner/workflow-runner.service';
|
||||
import { WorkflowCommonWorkspaceService } from 'src/modules/workflow/common/workflow-common.workspace-service';
|
||||
import { WorkflowRunnerWorkspaceService } from 'src/modules/workflow/workflow-runner/workflow-runner.workspace-service';
|
||||
import { WorkflowStatusWorkspaceService } from 'src/modules/workflow/workflow-status/workflow-status.workspace-service';
|
||||
|
||||
export type RunWorkflowJobData = {
|
||||
@ -18,29 +18,27 @@ export type RunWorkflowJobData = {
|
||||
@Processor({ queueName: MessageQueue.workflowQueue, scope: Scope.REQUEST })
|
||||
export class WorkflowRunnerJob {
|
||||
constructor(
|
||||
private readonly workflowCommonService: WorkflowCommonService,
|
||||
private readonly workflowRunnerService: WorkflowRunnerService,
|
||||
private readonly workflowCommonWorkspaceService: WorkflowCommonWorkspaceService,
|
||||
private readonly workflowRunnerWorkspaceService: WorkflowRunnerWorkspaceService,
|
||||
private readonly workflowStatusWorkspaceService: WorkflowStatusWorkspaceService,
|
||||
) {}
|
||||
|
||||
@Process(WorkflowRunnerJob.name)
|
||||
async handle({
|
||||
workspaceId,
|
||||
workflowVersionId,
|
||||
workflowRunId,
|
||||
payload,
|
||||
}: RunWorkflowJobData): Promise<void> {
|
||||
await this.workflowStatusWorkspaceService.startWorkflowRun(workflowRunId);
|
||||
|
||||
const workflowVersion = await this.workflowCommonService.getWorkflowVersion(
|
||||
workspaceId,
|
||||
workflowVersionId,
|
||||
);
|
||||
const workflowVersion =
|
||||
await this.workflowCommonWorkspaceService.getWorkflowVersion(
|
||||
workflowVersionId,
|
||||
);
|
||||
|
||||
try {
|
||||
await this.workflowRunnerService.run({
|
||||
await this.workflowRunnerWorkspaceService.run({
|
||||
action: workflowVersion.trigger.nextAction,
|
||||
workspaceId,
|
||||
payload,
|
||||
});
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@ import { Module } from '@nestjs/common';
|
||||
import { WorkflowCommonModule } from 'src/modules/workflow/common/workflow-common.module';
|
||||
import { WorkflowActionRunnerModule } from 'src/modules/workflow/workflow-action-runner/workflow-action-runner.module';
|
||||
import { WorkflowRunnerJob } from 'src/modules/workflow/workflow-runner/workflow-runner.job';
|
||||
import { WorkflowRunnerService } from 'src/modules/workflow/workflow-runner/workflow-runner.service';
|
||||
import { WorkflowRunnerWorkspaceService } from 'src/modules/workflow/workflow-runner/workflow-runner.workspace-service';
|
||||
import { WorkflowStatusModule } from 'src/modules/workflow/workflow-status/workflow-status.module';
|
||||
|
||||
@Module({
|
||||
@ -12,7 +12,7 @@ import { WorkflowStatusModule } from 'src/modules/workflow/workflow-status/workf
|
||||
WorkflowActionRunnerModule,
|
||||
WorkflowStatusModule,
|
||||
],
|
||||
providers: [WorkflowRunnerService, WorkflowRunnerJob],
|
||||
exports: [WorkflowRunnerService],
|
||||
providers: [WorkflowRunnerWorkspaceService, WorkflowRunnerJob],
|
||||
exports: [WorkflowRunnerWorkspaceService],
|
||||
})
|
||||
export class WorkflowRunnerModule {}
|
||||
|
||||
@ -15,19 +15,17 @@ export type WorkflowRunOutput = {
|
||||
};
|
||||
|
||||
@Injectable()
|
||||
export class WorkflowRunnerService {
|
||||
export class WorkflowRunnerWorkspaceService {
|
||||
constructor(
|
||||
private readonly workflowActionRunnerFactory: WorkflowActionRunnerFactory,
|
||||
) {}
|
||||
|
||||
async run({
|
||||
action,
|
||||
workspaceId,
|
||||
payload,
|
||||
attemptCount = 1,
|
||||
}: {
|
||||
action?: WorkflowAction;
|
||||
workspaceId: string;
|
||||
payload?: object;
|
||||
attemptCount?: number;
|
||||
}): Promise<WorkflowRunOutput> {
|
||||
@ -43,14 +41,12 @@ export class WorkflowRunnerService {
|
||||
|
||||
const result = await workflowActionRunner.execute({
|
||||
action,
|
||||
workspaceId,
|
||||
payload,
|
||||
});
|
||||
|
||||
if (result.data) {
|
||||
return await this.run({
|
||||
action: action.nextAction,
|
||||
workspaceId,
|
||||
payload: result.data,
|
||||
});
|
||||
}
|
||||
@ -65,7 +61,6 @@ export class WorkflowRunnerService {
|
||||
if (action.settings.errorHandlingOptions.continueOnFailure.value) {
|
||||
return await this.run({
|
||||
action: action.nextAction,
|
||||
workspaceId,
|
||||
payload,
|
||||
});
|
||||
}
|
||||
@ -76,7 +71,6 @@ export class WorkflowRunnerService {
|
||||
) {
|
||||
return await this.run({
|
||||
action,
|
||||
workspaceId,
|
||||
payload,
|
||||
attemptCount: attemptCount + 1,
|
||||
});
|
||||
Reference in New Issue
Block a user