n8n
Version:
n8n Workflow Automation Tool
39 lines (38 loc) • 2.42 kB
TypeScript
import { Logger } from '@n8n/backend-common';
import { WorkflowsConfig } from '@n8n/config';
import { WorkflowPublicationOutboxRepository, WorkflowPublicationReason, WorkflowPublicationTriggerStatusRepository, WorkflowRepository } from '@n8n/db';
import { ActiveWorkflowTriggers, ErrorReporter, InstanceSettings, Tracing } from 'n8n-core';
import { EventService } from '../../events/event.service';
import { NonWebhookTriggerRegistrar } from '../../workflows/triggers/non-webhook-trigger-registrar';
import { PublishedWorkflowTriggerDeactivator } from './published-workflow-trigger-deactivator';
import { WorkflowPublicationLifecycleLock } from './workflow-publication-lifecycle-lock';
import { WorkflowPublicationOutboxConsumer } from './workflow-publication-outbox-consumer';
export declare class WorkflowPublicationReconciler {
private readonly workflowsConfig;
private readonly triggerStatusRepository;
private readonly outboxRepository;
private readonly nonWebhookTriggerRegistrar;
private readonly outboxConsumer;
private readonly instanceSettings;
private readonly errorReporter;
private readonly tracing;
private readonly eventService;
private readonly lifecycleLock;
private readonly workflowRepository;
private readonly activeWorkflowTriggers;
private readonly publishedWorkflowTriggerDeactivator;
private reconcileInterval;
private isShuttingDown;
private readonly logger;
constructor(logger: Logger, workflowsConfig: WorkflowsConfig, triggerStatusRepository: WorkflowPublicationTriggerStatusRepository, outboxRepository: WorkflowPublicationOutboxRepository, nonWebhookTriggerRegistrar: NonWebhookTriggerRegistrar, outboxConsumer: WorkflowPublicationOutboxConsumer, instanceSettings: InstanceSettings, errorReporter: ErrorReporter, tracing: Tracing, eventService: EventService, lifecycleLock: WorkflowPublicationLifecycleLock, workflowRepository: WorkflowRepository, activeWorkflowTriggers: ActiveWorkflowTriggers, publishedWorkflowTriggerDeactivator: PublishedWorkflowTriggerDeactivator);
init(): void;
startReconciler(): void;
shutdown(): void;
reconcile(reason: WorkflowPublicationReason): Promise<void>;
reconcileOnLeaderTakeover(): Promise<void>;
private findSurplusWorkflowIds;
private removeGhostTriggers;
private findMissingActiveWorkflows;
private republishWorkflows;
private groupByWorkflow;
}