mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-18 02:21:13 +00:00
refactor(core): Simplify OrchestrationService (no-changelog) (#8364)
This commit is contained in:
@@ -47,7 +47,7 @@ import { ExternalHooks } from '@/ExternalHooks';
|
||||
import { WebhookService } from './services/webhook.service';
|
||||
import { Logger } from './Logger';
|
||||
import { WorkflowRepository } from '@db/repositories/workflow.repository';
|
||||
import { MultiMainSetup } from '@/services/orchestration/main/MultiMainSetup.ee';
|
||||
import { OrchestrationService } from '@/services/orchestration.service';
|
||||
import { ActivationErrorsService } from '@/ActivationErrors.service';
|
||||
import { ActiveWorkflowsService } from '@/services/activeWorkflows.service';
|
||||
import { WorkflowStaticDataService } from '@/workflows/workflowStaticData.service';
|
||||
@@ -72,7 +72,7 @@ export class ActiveWorkflowRunner {
|
||||
private readonly nodeTypes: NodeTypes,
|
||||
private readonly webhookService: WebhookService,
|
||||
private readonly workflowRepository: WorkflowRepository,
|
||||
private readonly multiMainSetup: MultiMainSetup,
|
||||
private readonly orchestrationService: OrchestrationService,
|
||||
private readonly activationErrorsService: ActivationErrorsService,
|
||||
private readonly executionService: ExecutionService,
|
||||
private readonly workflowStaticDataService: WorkflowStaticDataService,
|
||||
@@ -80,7 +80,7 @@ export class ActiveWorkflowRunner {
|
||||
) {}
|
||||
|
||||
async init() {
|
||||
await this.multiMainSetup.init();
|
||||
await this.orchestrationService.init();
|
||||
|
||||
await this.addActiveWorkflows('init');
|
||||
|
||||
@@ -470,25 +470,23 @@ export class ActiveWorkflowRunner {
|
||||
|
||||
if (dbWorkflows.length === 0) return;
|
||||
|
||||
this.logger.info(' ================================');
|
||||
this.logger.info(' Start Active Workflows:');
|
||||
this.logger.info(' ================================');
|
||||
if (this.orchestrationService.isLeader) {
|
||||
this.logger.info(' ================================');
|
||||
this.logger.info(' Start Active Workflows:');
|
||||
this.logger.info(' ================================');
|
||||
}
|
||||
|
||||
for (const dbWorkflow of dbWorkflows) {
|
||||
this.logger.info(` - ${dbWorkflow.display()}`);
|
||||
this.logger.debug(`Initializing active workflow ${dbWorkflow.display()} (startup)`, {
|
||||
workflowName: dbWorkflow.name,
|
||||
workflowId: dbWorkflow.id,
|
||||
});
|
||||
|
||||
try {
|
||||
await this.add(dbWorkflow.id, activationMode, dbWorkflow);
|
||||
const wasActivated = await this.add(dbWorkflow.id, activationMode, dbWorkflow);
|
||||
|
||||
this.logger.verbose(`Successfully started workflow ${dbWorkflow.display()}`, {
|
||||
workflowName: dbWorkflow.name,
|
||||
workflowId: dbWorkflow.id,
|
||||
});
|
||||
this.logger.info(' => Started');
|
||||
if (wasActivated) {
|
||||
this.logger.verbose(`Successfully started workflow ${dbWorkflow.display()}`, {
|
||||
workflowName: dbWorkflow.name,
|
||||
workflowId: dbWorkflow.id,
|
||||
});
|
||||
this.logger.info(' => Started');
|
||||
}
|
||||
} catch (error) {
|
||||
ErrorReporter.error(error);
|
||||
this.logger.info(
|
||||
@@ -571,16 +569,18 @@ export class ActiveWorkflowRunner {
|
||||
* again, and the new leader should take over the triggers and pollers that stopped
|
||||
* running when the former leader became unresponsive.
|
||||
*/
|
||||
if (this.multiMainSetup.isEnabled) {
|
||||
if (this.orchestrationService.isMultiMainSetupEnabled) {
|
||||
if (activationMode !== 'leadershipChange') {
|
||||
shouldAddWebhooks = this.multiMainSetup.isLeader;
|
||||
shouldAddTriggersAndPollers = this.multiMainSetup.isLeader;
|
||||
shouldAddWebhooks = this.orchestrationService.isLeader;
|
||||
shouldAddTriggersAndPollers = this.orchestrationService.isLeader;
|
||||
} else {
|
||||
shouldAddWebhooks = false;
|
||||
shouldAddTriggersAndPollers = this.multiMainSetup.isLeader;
|
||||
shouldAddTriggersAndPollers = this.orchestrationService.isLeader;
|
||||
}
|
||||
}
|
||||
|
||||
const shouldActivate = shouldAddWebhooks || shouldAddTriggersAndPollers;
|
||||
|
||||
try {
|
||||
const dbWorkflow = existingWorkflow ?? (await this.workflowRepository.findById(workflowId));
|
||||
|
||||
@@ -588,6 +588,14 @@ export class ActiveWorkflowRunner {
|
||||
throw new WorkflowActivationError(`Failed to find workflow with ID "${workflowId}"`);
|
||||
}
|
||||
|
||||
if (shouldActivate) {
|
||||
this.logger.info(` - ${dbWorkflow.display()}`);
|
||||
this.logger.debug(`Initializing active workflow ${dbWorkflow.display()} (startup)`, {
|
||||
workflowName: dbWorkflow.name,
|
||||
workflowId: dbWorkflow.id,
|
||||
});
|
||||
}
|
||||
|
||||
workflow = new Workflow({
|
||||
id: dbWorkflow.id,
|
||||
name: dbWorkflow.name,
|
||||
@@ -644,6 +652,8 @@ export class ActiveWorkflowRunner {
|
||||
// If for example webhooks get created it sometimes has to save the
|
||||
// id of them in the static data. So make sure that data gets persisted.
|
||||
await this.workflowStaticDataService.saveStaticData(workflow);
|
||||
|
||||
return shouldActivate;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -804,7 +814,7 @@ export class ActiveWorkflowRunner {
|
||||
);
|
||||
|
||||
if (workflow.getTriggerNodes().length !== 0 || workflow.getPollNodes().length !== 0) {
|
||||
this.logger.debug(`Adding triggers and pollers for workflow "${dbWorkflow.display()}"`);
|
||||
this.logger.debug(`Adding triggers and pollers for workflow ${dbWorkflow.display()}`);
|
||||
|
||||
await this.activeWorkflows.add(
|
||||
workflow.id,
|
||||
|
||||
Reference in New Issue
Block a user