fix(core): Do not execute workflowExecuteBefore hook when resuming executions from a waiting state (#5727)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™ 2023-04-06 10:18:19 +02:00 committed by GitHub
parent b1e1c5b306
commit 6689451e8c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 9 additions and 1 deletions

View file

@ -728,6 +728,7 @@ export interface IProcessMessageDataHook {
export interface IWorkflowExecutionDataProcess {
destinationNode?: string;
restartExecutionId?: string;
executionMode: WorkflowExecuteMode;
executionData?: IRunExecutionData;
runData?: IRunData;

View file

@ -271,6 +271,7 @@ export class WorkflowRunner {
undefined,
workflowTimeout <= 0 ? undefined : Date.now() + workflowTimeout * 1000,
);
additionalData.restartExecutionId = restartExecutionId;
// Register the active execution
const executionId = await this.activeExecutions.add(data, undefined, restartExecutionId);
@ -644,6 +645,8 @@ export class WorkflowRunner {
data.workflowData.staticData = await WorkflowHelpers.getStaticDataById(workflowId);
}
data.restartExecutionId = restartExecutionId;
// Register the active execution
const executionId = await this.activeExecutions.add(data, subprocess, restartExecutionId);

View file

@ -170,6 +170,7 @@ class WorkflowRunnerProcess {
undefined,
workflowTimeout <= 0 ? undefined : Date.now() + workflowTimeout * 1000,
);
additionalData.restartExecutionId = this.data.restartExecutionId;
additionalData.hooks = this.getProcessForwardHooks();
additionalData.hooks.hookFunctions.sendResponse = [

View file

@ -746,7 +746,9 @@ export class WorkflowExecute {
const returnPromise = (async () => {
try {
await this.executeHook('workflowExecuteBefore', [workflow]);
if (!this.additionalData.restartExecutionId) {
await this.executeHook('workflowExecuteBefore', [workflow]);
}
} catch (error) {
// Set the error that it can be saved correctly
executionError = {

View file

@ -1677,6 +1677,7 @@ export interface IWorkflowExecuteAdditionalData {
) => Promise<any>;
// hooks?: IWorkflowExecuteHooks;
executionId?: string;
restartExecutionId?: string;
hooks?: WorkflowHooks;
httpResponse?: express.Response;
httpRequest?: express.Request;