diff --git a/packages/cli/src/commands/start.ts b/packages/cli/src/commands/start.ts index 63ec3d9240..847f5a480f 100644 --- a/packages/cli/src/commands/start.ts +++ b/packages/cli/src/commands/start.ts @@ -225,7 +225,7 @@ export class Start extends BaseCommand { const { taskRunners: taskRunnerConfig } = this.globalConfig; if (taskRunnerConfig.enabled) { - const { TaskRunnerModule } = await import('@/runners/task-runner-module'); + const { TaskRunnerModule } = await import('@/task-runners/task-runner-module'); const taskRunnerModule = Container.get(TaskRunnerModule); await taskRunnerModule.start(); } diff --git a/packages/cli/src/commands/worker.ts b/packages/cli/src/commands/worker.ts index ac413077d2..c69957dacb 100644 --- a/packages/cli/src/commands/worker.ts +++ b/packages/cli/src/commands/worker.ts @@ -113,7 +113,7 @@ export class Worker extends BaseCommand { const { taskRunners: taskRunnerConfig } = this.globalConfig; if (taskRunnerConfig.enabled) { - const { TaskRunnerModule } = await import('@/runners/task-runner-module'); + const { TaskRunnerModule } = await import('@/task-runners/task-runner-module'); const taskRunnerModule = Container.get(TaskRunnerModule); await taskRunnerModule.start(); } diff --git a/packages/cli/src/runners/__tests__/forward-to-logger.test.ts b/packages/cli/src/task-runners/__tests__/forward-to-logger.test.ts similarity index 100% rename from packages/cli/src/runners/__tests__/forward-to-logger.test.ts rename to packages/cli/src/task-runners/__tests__/forward-to-logger.test.ts diff --git a/packages/cli/src/runners/__tests__/node-process-oom-detector.test.ts b/packages/cli/src/task-runners/__tests__/node-process-oom-detector.test.ts similarity index 100% rename from packages/cli/src/runners/__tests__/node-process-oom-detector.test.ts rename to packages/cli/src/task-runners/__tests__/node-process-oom-detector.test.ts diff --git a/packages/cli/src/runners/__tests__/sliding-window-signal.test.ts b/packages/cli/src/task-runners/__tests__/sliding-window-signal.test.ts similarity index 100% rename from packages/cli/src/runners/__tests__/sliding-window-signal.test.ts rename to packages/cli/src/task-runners/__tests__/sliding-window-signal.test.ts diff --git a/packages/cli/src/runners/__tests__/task-broker.test.ts b/packages/cli/src/task-runners/__tests__/task-broker.test.ts similarity index 99% rename from packages/cli/src/runners/__tests__/task-broker.test.ts rename to packages/cli/src/task-runners/__tests__/task-broker.test.ts index 1f5030ada8..ced7e1c07e 100644 --- a/packages/cli/src/runners/__tests__/task-broker.test.ts +++ b/packages/cli/src/task-runners/__tests__/task-broker.test.ts @@ -7,9 +7,9 @@ import { Time } from '@/constants'; import { TaskRejectError } from '../errors'; import { TaskRunnerTimeoutError } from '../errors/task-runner-timeout.error'; -import type { RunnerLifecycleEvents } from '../runner-lifecycle-events'; import { TaskBroker } from '../task-broker.service'; import type { TaskOffer, TaskRequest, TaskRunner } from '../task-broker.service'; +import type { TaskRunnerLifecycleEvents } from '../task-runner-lifecycle-events'; const createValidUntil = (ms: number) => process.hrtime.bigint() + BigInt(ms * 1_000_000); @@ -718,7 +718,7 @@ describe('TaskBroker', () => { describe('task timeouts', () => { let taskBroker: TaskBroker; let config: TaskRunnersConfig; - let runnerLifecycleEvents = mock(); + let runnerLifecycleEvents = mock(); beforeAll(() => { jest.useFakeTimers(); diff --git a/packages/cli/src/runners/__tests__/task-runner-process-restart-loop-detector.test.ts b/packages/cli/src/task-runners/__tests__/task-runner-process-restart-loop-detector.test.ts similarity index 76% rename from packages/cli/src/runners/__tests__/task-runner-process-restart-loop-detector.test.ts rename to packages/cli/src/task-runners/__tests__/task-runner-process-restart-loop-detector.test.ts index 31abac807a..bf3bab4c27 100644 --- a/packages/cli/src/runners/__tests__/task-runner-process-restart-loop-detector.test.ts +++ b/packages/cli/src/task-runners/__tests__/task-runner-process-restart-loop-detector.test.ts @@ -2,11 +2,11 @@ import { TaskRunnersConfig } from '@n8n/config'; import { mock } from 'jest-mock-extended'; import type { Logger } from 'n8n-core'; -import type { TaskRunnerAuthService } from '@/runners/auth/task-runner-auth.service'; -import { TaskRunnerRestartLoopError } from '@/runners/errors/task-runner-restart-loop-error'; -import { RunnerLifecycleEvents } from '@/runners/runner-lifecycle-events'; -import { TaskRunnerProcess } from '@/runners/task-runner-process'; -import { TaskRunnerProcessRestartLoopDetector } from '@/runners/task-runner-process-restart-loop-detector'; +import type { TaskRunnerAuthService } from '@/task-runners/auth/task-runner-auth.service'; +import { TaskRunnerRestartLoopError } from '@/task-runners/errors/task-runner-restart-loop-error'; +import { TaskRunnerLifecycleEvents } from '@/task-runners/task-runner-lifecycle-events'; +import { TaskRunnerProcess } from '@/task-runners/task-runner-process'; +import { TaskRunnerProcessRestartLoopDetector } from '@/task-runners/task-runner-process-restart-loop-detector'; describe('TaskRunnerProcessRestartLoopDetector', () => { const mockLogger = mock(); @@ -16,7 +16,7 @@ describe('TaskRunnerProcessRestartLoopDetector', () => { mockLogger, runnerConfig, mockAuthService, - new RunnerLifecycleEvents(), + new TaskRunnerLifecycleEvents(), ); it('should detect a restart loop if process exits 5 times within 5s', () => { diff --git a/packages/cli/src/runners/__tests__/task-runner-process.test.ts b/packages/cli/src/task-runners/__tests__/task-runner-process.test.ts similarity index 89% rename from packages/cli/src/runners/__tests__/task-runner-process.test.ts rename to packages/cli/src/task-runners/__tests__/task-runner-process.test.ts index 42d6794287..d00ce7b88f 100644 --- a/packages/cli/src/runners/__tests__/task-runner-process.test.ts +++ b/packages/cli/src/task-runners/__tests__/task-runner-process.test.ts @@ -3,11 +3,11 @@ import { mock } from 'jest-mock-extended'; import { Logger } from 'n8n-core'; import type { ChildProcess, SpawnOptions } from 'node:child_process'; -import type { TaskRunnerAuthService } from '@/runners/auth/task-runner-auth.service'; -import { TaskRunnerProcess } from '@/runners/task-runner-process'; +import type { TaskRunnerAuthService } from '@/task-runners/auth/task-runner-auth.service'; +import { TaskRunnerProcess } from '@/task-runners/task-runner-process'; import { mockInstance } from '@test/mocking'; -import type { RunnerLifecycleEvents } from '../runner-lifecycle-events'; +import type { TaskRunnerLifecycleEvents } from '../task-runner-lifecycle-events'; const spawnMock = jest.fn(() => mock({ @@ -43,7 +43,7 @@ describe('TaskRunnerProcess', () => { }); it('should register listener for `runner:failed-heartbeat-check` event', () => { - const runnerLifecycleEvents = mock(); + const runnerLifecycleEvents = mock(); new TaskRunnerProcess(logger, runnerConfig, authService, runnerLifecycleEvents); expect(runnerLifecycleEvents.on).toHaveBeenCalledWith( @@ -53,7 +53,7 @@ describe('TaskRunnerProcess', () => { }); it('should register listener for `runner:timed-out-during-task` event', () => { - const runnerLifecycleEvents = mock(); + const runnerLifecycleEvents = mock(); new TaskRunnerProcess(logger, runnerConfig, authService, runnerLifecycleEvents); expect(runnerLifecycleEvents.on).toHaveBeenCalledWith( diff --git a/packages/cli/src/runners/__tests__/task-runner-server.test.ts b/packages/cli/src/task-runners/__tests__/task-runner-server.test.ts similarity index 87% rename from packages/cli/src/runners/__tests__/task-runner-server.test.ts rename to packages/cli/src/task-runners/__tests__/task-runner-server.test.ts index ae25cd1231..33de18c605 100644 --- a/packages/cli/src/runners/__tests__/task-runner-server.test.ts +++ b/packages/cli/src/task-runners/__tests__/task-runner-server.test.ts @@ -3,10 +3,10 @@ import { mock } from 'jest-mock-extended'; import { ServerResponse } from 'node:http'; import type WebSocket from 'ws'; -import type { TaskRunnerAuthController } from '@/runners/auth/task-runner-auth.controller'; -import { TaskRunnerServer } from '@/runners/task-runner-server'; +import type { TaskRunnerAuthController } from '@/task-runners/auth/task-runner-auth.controller'; +import { TaskRunnerServer } from '@/task-runners/task-runner-server'; -import type { TaskRunnerServerInitRequest } from '../runner-types'; +import type { TaskRunnerServerInitRequest } from '../task-runner-types'; describe('TaskRunnerServer', () => { describe('handleUpgradeRequest', () => { diff --git a/packages/cli/src/runners/__tests__/task-runner-ws-server.test.ts b/packages/cli/src/task-runners/__tests__/task-runner-ws-server.test.ts similarity index 96% rename from packages/cli/src/runners/__tests__/task-runner-ws-server.test.ts rename to packages/cli/src/task-runners/__tests__/task-runner-ws-server.test.ts index 24b12fa190..cabedc530b 100644 --- a/packages/cli/src/runners/__tests__/task-runner-ws-server.test.ts +++ b/packages/cli/src/task-runners/__tests__/task-runner-ws-server.test.ts @@ -3,7 +3,7 @@ import { mock } from 'jest-mock-extended'; import type WebSocket from 'ws'; import { Time, WsStatusCodes } from '@/constants'; -import { TaskRunnerWsServer } from '@/runners/runner-ws-server'; +import { TaskRunnerWsServer } from '@/task-runners/task-runner-ws-server'; describe('TaskRunnerWsServer', () => { describe('removeConnection', () => { diff --git a/packages/cli/src/runners/auth/__tests__/task-runner-auth.controller.test.ts b/packages/cli/src/task-runners/auth/__tests__/task-runner-auth.controller.test.ts similarity index 97% rename from packages/cli/src/runners/auth/__tests__/task-runner-auth.controller.test.ts rename to packages/cli/src/task-runners/auth/__tests__/task-runner-auth.controller.test.ts index 7d43f91458..3c650d1644 100644 --- a/packages/cli/src/runners/auth/__tests__/task-runner-auth.controller.test.ts +++ b/packages/cli/src/task-runners/auth/__tests__/task-runner-auth.controller.test.ts @@ -8,7 +8,7 @@ import { mockInstance } from '@test/mocking'; import { BadRequestError } from '../../../errors/response-errors/bad-request.error'; import { ForbiddenError } from '../../../errors/response-errors/forbidden.error'; import type { AuthlessRequest } from '../../../requests'; -import type { TaskRunnerServerInitRequest } from '../../runner-types'; +import type { TaskRunnerServerInitRequest } from '../../task-runner-types'; import { TaskRunnerAuthController } from '../task-runner-auth.controller'; import { TaskRunnerAuthService } from '../task-runner-auth.service'; diff --git a/packages/cli/src/runners/auth/__tests__/task-runner-auth.service.test.ts b/packages/cli/src/task-runners/auth/__tests__/task-runner-auth.service.test.ts similarity index 100% rename from packages/cli/src/runners/auth/__tests__/task-runner-auth.service.test.ts rename to packages/cli/src/task-runners/auth/__tests__/task-runner-auth.service.test.ts diff --git a/packages/cli/src/runners/auth/task-runner-auth.controller.ts b/packages/cli/src/task-runners/auth/task-runner-auth.controller.ts similarity index 96% rename from packages/cli/src/runners/auth/task-runner-auth.controller.ts rename to packages/cli/src/task-runners/auth/task-runner-auth.controller.ts index a117dfca0d..0213d2b408 100644 --- a/packages/cli/src/runners/auth/task-runner-auth.controller.ts +++ b/packages/cli/src/task-runners/auth/task-runner-auth.controller.ts @@ -7,7 +7,7 @@ import { taskRunnerAuthRequestBodySchema } from './task-runner-auth.schema'; import { TaskRunnerAuthService } from './task-runner-auth.service'; import { BadRequestError } from '../../errors/response-errors/bad-request.error'; import { ForbiddenError } from '../../errors/response-errors/forbidden.error'; -import type { TaskRunnerServerInitRequest } from '../runner-types'; +import type { TaskRunnerServerInitRequest } from '../task-runner-types'; /** * Controller responsible for authenticating Task Runner connections diff --git a/packages/cli/src/runners/auth/task-runner-auth.schema.ts b/packages/cli/src/task-runners/auth/task-runner-auth.schema.ts similarity index 100% rename from packages/cli/src/runners/auth/task-runner-auth.schema.ts rename to packages/cli/src/task-runners/auth/task-runner-auth.schema.ts diff --git a/packages/cli/src/runners/auth/task-runner-auth.service.ts b/packages/cli/src/task-runners/auth/task-runner-auth.service.ts similarity index 100% rename from packages/cli/src/runners/auth/task-runner-auth.service.ts rename to packages/cli/src/task-runners/auth/task-runner-auth.service.ts diff --git a/packages/cli/src/runners/default-task-runner-disconnect-analyzer.ts b/packages/cli/src/task-runners/default-task-runner-disconnect-analyzer.ts similarity index 97% rename from packages/cli/src/runners/default-task-runner-disconnect-analyzer.ts rename to packages/cli/src/task-runners/default-task-runner-disconnect-analyzer.ts index 9db537ee95..3033a1f762 100644 --- a/packages/cli/src/runners/default-task-runner-disconnect-analyzer.ts +++ b/packages/cli/src/task-runners/default-task-runner-disconnect-analyzer.ts @@ -4,7 +4,7 @@ import config from '@/config'; import { TaskRunnerDisconnectedError } from './errors/task-runner-disconnected-error'; import { TaskRunnerFailedHeartbeatError } from './errors/task-runner-failed-heartbeat.error'; -import type { DisconnectAnalyzer, DisconnectErrorOptions } from './runner-types'; +import type { DisconnectAnalyzer, DisconnectErrorOptions } from './task-runner-types'; /** * Analyzes the disconnect reason of a task runner to provide a more diff --git a/packages/cli/src/runners/errors.ts b/packages/cli/src/task-runners/errors.ts similarity index 100% rename from packages/cli/src/runners/errors.ts rename to packages/cli/src/task-runners/errors.ts diff --git a/packages/cli/src/runners/errors/__tests__/task-runner-disconnected-error.test.ts b/packages/cli/src/task-runners/errors/__tests__/task-runner-disconnected-error.test.ts similarity index 100% rename from packages/cli/src/runners/errors/__tests__/task-runner-disconnected-error.test.ts rename to packages/cli/src/task-runners/errors/__tests__/task-runner-disconnected-error.test.ts diff --git a/packages/cli/src/runners/errors/missing-auth-token.error.ts b/packages/cli/src/task-runners/errors/missing-auth-token.error.ts similarity index 100% rename from packages/cli/src/runners/errors/missing-auth-token.error.ts rename to packages/cli/src/task-runners/errors/missing-auth-token.error.ts diff --git a/packages/cli/src/runners/errors/task-runner-disconnected-error.ts b/packages/cli/src/task-runners/errors/task-runner-disconnected-error.ts similarity index 100% rename from packages/cli/src/runners/errors/task-runner-disconnected-error.ts rename to packages/cli/src/task-runners/errors/task-runner-disconnected-error.ts diff --git a/packages/cli/src/runners/errors/task-runner-failed-heartbeat.error.ts b/packages/cli/src/task-runners/errors/task-runner-failed-heartbeat.error.ts similarity index 100% rename from packages/cli/src/runners/errors/task-runner-failed-heartbeat.error.ts rename to packages/cli/src/task-runners/errors/task-runner-failed-heartbeat.error.ts diff --git a/packages/cli/src/runners/errors/task-runner-oom-error.ts b/packages/cli/src/task-runners/errors/task-runner-oom-error.ts similarity index 100% rename from packages/cli/src/runners/errors/task-runner-oom-error.ts rename to packages/cli/src/task-runners/errors/task-runner-oom-error.ts diff --git a/packages/cli/src/runners/errors/task-runner-restart-loop-error.ts b/packages/cli/src/task-runners/errors/task-runner-restart-loop-error.ts similarity index 100% rename from packages/cli/src/runners/errors/task-runner-restart-loop-error.ts rename to packages/cli/src/task-runners/errors/task-runner-restart-loop-error.ts diff --git a/packages/cli/src/runners/errors/task-runner-timeout.error.ts b/packages/cli/src/task-runners/errors/task-runner-timeout.error.ts similarity index 100% rename from packages/cli/src/runners/errors/task-runner-timeout.error.ts rename to packages/cli/src/task-runners/errors/task-runner-timeout.error.ts diff --git a/packages/cli/src/runners/forward-to-logger.ts b/packages/cli/src/task-runners/forward-to-logger.ts similarity index 100% rename from packages/cli/src/runners/forward-to-logger.ts rename to packages/cli/src/task-runners/forward-to-logger.ts diff --git a/packages/cli/src/runners/internal-task-runner-disconnect-analyzer.ts b/packages/cli/src/task-runners/internal-task-runner-disconnect-analyzer.ts similarity index 96% rename from packages/cli/src/runners/internal-task-runner-disconnect-analyzer.ts rename to packages/cli/src/task-runners/internal-task-runner-disconnect-analyzer.ts index 26d8de5683..0af942bc9e 100644 --- a/packages/cli/src/runners/internal-task-runner-disconnect-analyzer.ts +++ b/packages/cli/src/task-runners/internal-task-runner-disconnect-analyzer.ts @@ -3,10 +3,10 @@ import { Service } from 'typedi'; import { DefaultTaskRunnerDisconnectAnalyzer } from './default-task-runner-disconnect-analyzer'; import { TaskRunnerOomError } from './errors/task-runner-oom-error'; -import type { DisconnectErrorOptions } from './runner-types'; import { SlidingWindowSignal } from './sliding-window-signal'; import type { ExitReason, TaskRunnerProcessEventMap } from './task-runner-process'; import { TaskRunnerProcess } from './task-runner-process'; +import type { DisconnectErrorOptions } from './task-runner-types'; /** * Analyzes the disconnect reason of a task runner process to provide a more diff --git a/packages/cli/src/runners/node-process-oom-detector.ts b/packages/cli/src/task-runners/node-process-oom-detector.ts similarity index 100% rename from packages/cli/src/runners/node-process-oom-detector.ts rename to packages/cli/src/task-runners/node-process-oom-detector.ts diff --git a/packages/cli/src/runners/sliding-window-signal.ts b/packages/cli/src/task-runners/sliding-window-signal.ts similarity index 100% rename from packages/cli/src/runners/sliding-window-signal.ts rename to packages/cli/src/task-runners/sliding-window-signal.ts diff --git a/packages/cli/src/runners/task-broker.service.ts b/packages/cli/src/task-runners/task-broker.service.ts similarity index 98% rename from packages/cli/src/runners/task-broker.service.ts rename to packages/cli/src/task-runners/task-broker.service.ts index ebbed80860..86c39b54e1 100644 --- a/packages/cli/src/runners/task-broker.service.ts +++ b/packages/cli/src/task-runners/task-broker.service.ts @@ -15,7 +15,7 @@ import { Time } from '@/constants'; import { TaskDeferredError, TaskRejectError } from './errors'; import { TaskRunnerTimeoutError } from './errors/task-runner-timeout.error'; -import { RunnerLifecycleEvents } from './runner-lifecycle-events'; +import { TaskRunnerLifecycleEvents } from './task-runner-lifecycle-events'; export interface TaskRunner { id: string; @@ -89,7 +89,7 @@ export class TaskBroker { constructor( private readonly logger: Logger, private readonly taskRunnersConfig: TaskRunnersConfig, - private readonly runnerLifecycleEvents: RunnerLifecycleEvents, + private readonly taskRunnerLifecycleEvents: TaskRunnerLifecycleEvents, ) { if (this.taskRunnersConfig.taskTimeout <= 0) { throw new ApplicationError('Task timeout must be greater than 0'); @@ -460,7 +460,7 @@ export class TaskBroker { if (!task) return; if (this.taskRunnersConfig.mode === 'internal') { - this.runnerLifecycleEvents.emit('runner:timed-out-during-task'); + this.taskRunnerLifecycleEvents.emit('runner:timed-out-during-task'); } else if (this.taskRunnersConfig.mode === 'external') { await this.messageRunner(task.runnerId, { type: 'broker:taskcancel', diff --git a/packages/cli/src/runners/task-managers/__tests__/data-request-response-builder.test.ts b/packages/cli/src/task-runners/task-managers/__tests__/data-request-response-builder.test.ts similarity index 100% rename from packages/cli/src/runners/task-managers/__tests__/data-request-response-builder.test.ts rename to packages/cli/src/task-runners/task-managers/__tests__/data-request-response-builder.test.ts diff --git a/packages/cli/src/runners/task-managers/__tests__/data-request-response-stripper.test.ts b/packages/cli/src/task-runners/task-managers/__tests__/data-request-response-stripper.test.ts similarity index 100% rename from packages/cli/src/runners/task-managers/__tests__/data-request-response-stripper.test.ts rename to packages/cli/src/task-runners/task-managers/__tests__/data-request-response-stripper.test.ts diff --git a/packages/cli/src/runners/task-managers/__tests__/task-manager.test.ts b/packages/cli/src/task-runners/task-managers/__tests__/task-manager.test.ts similarity index 91% rename from packages/cli/src/runners/task-managers/__tests__/task-manager.test.ts rename to packages/cli/src/task-runners/task-managers/__tests__/task-manager.test.ts index 84584e05df..3066f25cfd 100644 --- a/packages/cli/src/runners/task-managers/__tests__/task-manager.test.ts +++ b/packages/cli/src/task-runners/task-managers/__tests__/task-manager.test.ts @@ -2,10 +2,10 @@ import { mock } from 'jest-mock-extended'; import { get, set } from 'lodash'; import type { NodeTypes } from '@/node-types'; -import type { Task } from '@/runners/task-managers/task-manager'; -import { TaskManager } from '@/runners/task-managers/task-manager'; +import type { Task } from '@/task-runners/task-managers/task-requester'; +import { TaskRequester } from '@/task-runners/task-managers/task-requester'; -class TestTaskManager extends TaskManager { +class TestTaskRequester extends TaskRequester { sentMessages: unknown[] = []; sendMessage(message: unknown) { @@ -13,12 +13,12 @@ class TestTaskManager extends TaskManager { } } -describe('TaskManager', () => { - let instance: TestTaskManager; +describe('TaskRequester', () => { + let instance: TestTaskRequester; const mockNodeTypes = mock(); beforeEach(() => { - instance = new TestTaskManager(mockNodeTypes); + instance = new TestTaskRequester(mockNodeTypes); }); describe('handleRpc', () => { diff --git a/packages/cli/src/runners/task-managers/data-request-response-builder.ts b/packages/cli/src/task-runners/task-managers/data-request-response-builder.ts similarity index 100% rename from packages/cli/src/runners/task-managers/data-request-response-builder.ts rename to packages/cli/src/task-runners/task-managers/data-request-response-builder.ts diff --git a/packages/cli/src/runners/task-managers/data-request-response-stripper.ts b/packages/cli/src/task-runners/task-managers/data-request-response-stripper.ts similarity index 100% rename from packages/cli/src/runners/task-managers/data-request-response-stripper.ts rename to packages/cli/src/task-runners/task-managers/data-request-response-stripper.ts diff --git a/packages/cli/src/runners/task-managers/local-task-manager.ts b/packages/cli/src/task-runners/task-managers/local-task-requester.ts similarity index 83% rename from packages/cli/src/runners/task-managers/local-task-manager.ts rename to packages/cli/src/task-runners/task-managers/local-task-requester.ts index 7d898aaebe..0aa83c4a6f 100644 --- a/packages/cli/src/runners/task-managers/local-task-manager.ts +++ b/packages/cli/src/task-runners/task-managers/local-task-requester.ts @@ -3,15 +3,15 @@ import Container, { Service } from 'typedi'; import { NodeTypes } from '@/node-types'; -import { TaskManager } from './task-manager'; +import { TaskRequester } from './task-requester'; import type { RequesterMessageCallback } from '../task-broker.service'; import { TaskBroker } from '../task-broker.service'; @Service() -export class LocalTaskManager extends TaskManager { +export class LocalTaskRequester extends TaskRequester { taskBroker: TaskBroker; - id: string = 'single-main'; + id = 'local-task-requester'; constructor(nodeTypes: NodeTypes) { super(nodeTypes); diff --git a/packages/cli/src/runners/task-managers/task-manager.ts b/packages/cli/src/task-runners/task-managers/task-requester.ts similarity index 99% rename from packages/cli/src/runners/task-managers/task-manager.ts rename to packages/cli/src/task-runners/task-managers/task-requester.ts index 44193f9377..52e75678e4 100644 --- a/packages/cli/src/runners/task-managers/task-manager.ts +++ b/packages/cli/src/task-runners/task-managers/task-requester.ts @@ -49,7 +49,7 @@ interface ExecuteFunctionObject { } @Service() -export abstract class TaskManager { +export abstract class TaskRequester { requestAcceptRejects: Map = new Map(); taskAcceptRejects: Map = new Map(); diff --git a/packages/cli/src/runners/runner-lifecycle-events.ts b/packages/cli/src/task-runners/task-runner-lifecycle-events.ts similarity index 58% rename from packages/cli/src/runners/runner-lifecycle-events.ts rename to packages/cli/src/task-runners/task-runner-lifecycle-events.ts index 8ea2da38b1..d513b1583d 100644 --- a/packages/cli/src/runners/runner-lifecycle-events.ts +++ b/packages/cli/src/task-runners/task-runner-lifecycle-events.ts @@ -2,10 +2,10 @@ import { Service } from 'typedi'; import { TypedEmitter } from '@/typed-emitter'; -type RunnerLifecycleEventMap = { +type TaskRunnerLifecycleEventMap = { 'runner:failed-heartbeat-check': never; 'runner:timed-out-during-task': never; }; @Service() -export class RunnerLifecycleEvents extends TypedEmitter {} +export class TaskRunnerLifecycleEvents extends TypedEmitter {} diff --git a/packages/cli/src/runners/task-runner-module.ts b/packages/cli/src/task-runners/task-runner-module.ts similarity index 74% rename from packages/cli/src/runners/task-runner-module.ts rename to packages/cli/src/task-runners/task-runner-module.ts index 97f3f4e481..0608b24972 100644 --- a/packages/cli/src/runners/task-runner-module.ts +++ b/packages/cli/src/task-runners/task-runner-module.ts @@ -5,14 +5,14 @@ import * as a from 'node:assert/strict'; import Container, { Service } from 'typedi'; import { OnShutdown } from '@/decorators/on-shutdown'; -import type { TaskRunnerRestartLoopError } from '@/runners/errors/task-runner-restart-loop-error'; -import type { TaskRunnerProcess } from '@/runners/task-runner-process'; -import { TaskRunnerProcessRestartLoopDetector } from '@/runners/task-runner-process-restart-loop-detector'; +import type { TaskRunnerRestartLoopError } from '@/task-runners/errors/task-runner-restart-loop-error'; +import type { TaskRunnerProcess } from '@/task-runners/task-runner-process'; +import { TaskRunnerProcessRestartLoopDetector } from '@/task-runners/task-runner-process-restart-loop-detector'; import { MissingAuthTokenError } from './errors/missing-auth-token.error'; -import { TaskRunnerWsServer } from './runner-ws-server'; -import type { LocalTaskManager } from './task-managers/local-task-manager'; +import type { LocalTaskRequester } from './task-managers/local-task-requester'; import type { TaskRunnerServer } from './task-runner-server'; +import { TaskRunnerWsServer } from './task-runner-ws-server'; /** * Module responsible for loading and starting task runner. Task runner can be @@ -25,7 +25,7 @@ export class TaskRunnerModule { private taskRunnerWsServer: TaskRunnerWsServer | undefined; - private taskManager: LocalTaskManager | undefined; + private taskRequester: LocalTaskRequester | undefined; private taskRunnerProcess: TaskRunnerProcess | undefined; @@ -46,7 +46,7 @@ export class TaskRunnerModule { if (mode === 'external' && !authToken) throw new MissingAuthTokenError(); - await this.loadTaskManager(); + await this.loadTaskRequester(); await this.loadTaskRunnerServer(); if (mode === 'internal') { @@ -73,17 +73,19 @@ export class TaskRunnerModule { await Promise.all([stopRunnerProcessTask, stopRunnerServerTask]); } - private async loadTaskManager() { - const { TaskManager } = await import('@/runners/task-managers/task-manager'); - const { LocalTaskManager } = await import('@/runners/task-managers/local-task-manager'); - this.taskManager = Container.get(LocalTaskManager); - Container.set(TaskManager, this.taskManager); + private async loadTaskRequester() { + const { TaskRequester } = await import('@/task-runners/task-managers/task-requester'); + const { LocalTaskRequester } = await import( + '@/task-runners/task-managers/local-task-requester' + ); + this.taskRequester = Container.get(LocalTaskRequester); + Container.set(TaskRequester, this.taskRequester); } private async loadTaskRunnerServer() { // These are imported dynamically because we need to set the task manager // instance before importing them - const { TaskRunnerServer } = await import('@/runners/task-runner-server'); + const { TaskRunnerServer } = await import('@/task-runners/task-runner-server'); this.taskRunnerHttpServer = Container.get(TaskRunnerServer); this.taskRunnerWsServer = Container.get(TaskRunnerWsServer); @@ -93,7 +95,7 @@ export class TaskRunnerModule { private async startInternalTaskRunner() { a.ok(this.taskRunnerWsServer, 'Task Runner WS Server not loaded'); - const { TaskRunnerProcess } = await import('@/runners/task-runner-process'); + const { TaskRunnerProcess } = await import('@/task-runners/task-runner-process'); this.taskRunnerProcess = Container.get(TaskRunnerProcess); this.taskRunnerProcessRestartLoopDetector = new TaskRunnerProcessRestartLoopDetector( this.taskRunnerProcess, @@ -106,7 +108,7 @@ export class TaskRunnerModule { await this.taskRunnerProcess.start(); const { InternalTaskRunnerDisconnectAnalyzer } = await import( - '@/runners/internal-task-runner-disconnect-analyzer' + '@/task-runners/internal-task-runner-disconnect-analyzer' ); this.taskRunnerWsServer.setDisconnectAnalyzer( Container.get(InternalTaskRunnerDisconnectAnalyzer), diff --git a/packages/cli/src/runners/task-runner-process-restart-loop-detector.ts b/packages/cli/src/task-runners/task-runner-process-restart-loop-detector.ts similarity index 90% rename from packages/cli/src/runners/task-runner-process-restart-loop-detector.ts rename to packages/cli/src/task-runners/task-runner-process-restart-loop-detector.ts index 5431cde195..f816c97c00 100644 --- a/packages/cli/src/runners/task-runner-process-restart-loop-detector.ts +++ b/packages/cli/src/task-runners/task-runner-process-restart-loop-detector.ts @@ -1,6 +1,6 @@ import { Time } from '@/constants'; -import { TaskRunnerRestartLoopError } from '@/runners/errors/task-runner-restart-loop-error'; -import type { TaskRunnerProcess } from '@/runners/task-runner-process'; +import { TaskRunnerRestartLoopError } from '@/task-runners/errors/task-runner-restart-loop-error'; +import type { TaskRunnerProcess } from '@/task-runners/task-runner-process'; import { TypedEmitter } from '@/typed-emitter'; const MAX_RESTARTS = 5; diff --git a/packages/cli/src/runners/task-runner-process.ts b/packages/cli/src/task-runners/task-runner-process.ts similarity index 97% rename from packages/cli/src/runners/task-runner-process.ts rename to packages/cli/src/task-runners/task-runner-process.ts index 6687929942..aa8c9e7615 100644 --- a/packages/cli/src/runners/task-runner-process.ts +++ b/packages/cli/src/task-runners/task-runner-process.ts @@ -10,7 +10,7 @@ import { OnShutdown } from '@/decorators/on-shutdown'; import { TaskRunnerAuthService } from './auth/task-runner-auth.service'; import { forwardToLogger } from './forward-to-logger'; import { NodeProcessOomDetector } from './node-process-oom-detector'; -import { RunnerLifecycleEvents } from './runner-lifecycle-events'; +import { TaskRunnerLifecycleEvents } from './task-runner-lifecycle-events'; import { TypedEmitter } from '../typed-emitter'; type ChildProcess = ReturnType; @@ -68,7 +68,7 @@ export class TaskRunnerProcess extends TypedEmitter { logger: Logger, private readonly runnerConfig: TaskRunnersConfig, private readonly authService: TaskRunnerAuthService, - private readonly runnerLifecycleEvents: RunnerLifecycleEvents, + private readonly runnerLifecycleEvents: TaskRunnerLifecycleEvents, ) { super(); diff --git a/packages/cli/src/runners/task-runner-server.ts b/packages/cli/src/task-runners/task-runner-server.ts similarity index 96% rename from packages/cli/src/runners/task-runner-server.ts rename to packages/cli/src/task-runners/task-runner-server.ts index bbe1d7cd6a..1e92916e3c 100644 --- a/packages/cli/src/runners/task-runner-server.ts +++ b/packages/cli/src/task-runners/task-runner-server.ts @@ -13,12 +13,12 @@ import { Server as WSServer } from 'ws'; import { inTest } from '@/constants'; import { bodyParser, rawBodyReader } from '@/middlewares'; import { send } from '@/response-helper'; -import { TaskRunnerAuthController } from '@/runners/auth/task-runner-auth.controller'; +import { TaskRunnerAuthController } from '@/task-runners/auth/task-runner-auth.controller'; import type { TaskRunnerServerInitRequest, TaskRunnerServerInitResponse, -} from '@/runners/runner-types'; -import { TaskRunnerWsServer } from '@/runners/runner-ws-server'; +} from '@/task-runners/task-runner-types'; +import { TaskRunnerWsServer } from '@/task-runners/task-runner-ws-server'; /** * Task Runner HTTP & WS server diff --git a/packages/cli/src/runners/runner-types.ts b/packages/cli/src/task-runners/task-runner-types.ts similarity index 100% rename from packages/cli/src/runners/runner-types.ts rename to packages/cli/src/task-runners/task-runner-types.ts diff --git a/packages/cli/src/runners/runner-ws-server.ts b/packages/cli/src/task-runners/task-runner-ws-server.ts similarity index 96% rename from packages/cli/src/runners/runner-ws-server.ts rename to packages/cli/src/task-runners/task-runner-ws-server.ts index 53b8f18cf8..dde666a584 100644 --- a/packages/cli/src/runners/runner-ws-server.ts +++ b/packages/cli/src/task-runners/task-runner-ws-server.ts @@ -8,14 +8,14 @@ import type WebSocket from 'ws'; import { Time, WsStatusCodes } from '@/constants'; import { DefaultTaskRunnerDisconnectAnalyzer } from './default-task-runner-disconnect-analyzer'; -import { RunnerLifecycleEvents } from './runner-lifecycle-events'; +import { TaskBroker, type MessageCallback, type TaskRunner } from './task-broker.service'; +import { TaskRunnerLifecycleEvents } from './task-runner-lifecycle-events'; import type { DisconnectAnalyzer, DisconnectReason, TaskRunnerServerInitRequest, TaskRunnerServerInitResponse, -} from './runner-types'; -import { TaskBroker, type MessageCallback, type TaskRunner } from './task-broker.service'; +} from './task-runner-types'; function heartbeat(this: WebSocket) { this.isAlive = true; @@ -34,7 +34,7 @@ export class TaskRunnerWsServer { private readonly taskBroker: TaskBroker, private disconnectAnalyzer: DefaultTaskRunnerDisconnectAnalyzer, private readonly taskTunnersConfig: TaskRunnersConfig, - private readonly runnerLifecycleEvents: RunnerLifecycleEvents, + private readonly runnerLifecycleEvents: TaskRunnerLifecycleEvents, ) {} start() { diff --git a/packages/cli/src/workflow-execute-additional-data.ts b/packages/cli/src/workflow-execute-additional-data.ts index 69395b4ec8..de9bc85c14 100644 --- a/packages/cli/src/workflow-execute-additional-data.ts +++ b/packages/cli/src/workflow-execute-additional-data.ts @@ -58,11 +58,11 @@ import { updateExistingExecution, } from './execution-lifecycle-hooks/shared/shared-hook-functions'; import { toSaveSettings } from './execution-lifecycle-hooks/to-save-settings'; -import { TaskManager } from './runners/task-managers/task-manager'; import { SecretsHelper } from './secrets-helpers.ee'; import { OwnershipService } from './services/ownership.service'; import { UrlService } from './services/url.service'; import { SubworkflowPolicyChecker } from './subworkflows/subworkflow-policy-checker.service'; +import { TaskRequester } from './task-runners/task-managers/task-requester'; import { PermissionChecker } from './user-management/permission-checker'; import { WorkflowExecutionService } from './workflows/workflow-execution.service'; import { WorkflowStaticDataService } from './workflows/workflow-static-data.service'; @@ -1015,7 +1015,7 @@ export async function getBase( setExecutionStatus, variables, secretsHelpers: Container.get(SecretsHelper), - async startAgentJob( + async startRunnerTask( additionalData: IWorkflowExecuteAdditionalData, jobType: string, settings: unknown, @@ -1033,7 +1033,7 @@ export async function getBase( envProviderState: EnvProviderState, executeData?: IExecuteData, ) { - return await Container.get(TaskManager).startTask( + return await Container.get(TaskRequester).startTask( additionalData, jobType, settings, diff --git a/packages/cli/test/integration/commands/worker.cmd.test.ts b/packages/cli/test/integration/commands/worker.cmd.test.ts index f91c001e08..bbcb15dfa0 100644 --- a/packages/cli/test/integration/commands/worker.cmd.test.ts +++ b/packages/cli/test/integration/commands/worker.cmd.test.ts @@ -13,12 +13,12 @@ import { ExternalSecretsManager } from '@/external-secrets.ee/external-secrets-m import { License } from '@/license'; import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials'; import { Push } from '@/push'; -import { TaskRunnerProcess } from '@/runners/task-runner-process'; -import { TaskRunnerServer } from '@/runners/task-runner-server'; import { Publisher } from '@/scaling/pubsub/publisher.service'; import { Subscriber } from '@/scaling/pubsub/subscriber.service'; import { ScalingService } from '@/scaling/scaling.service'; import { OrchestrationService } from '@/services/orchestration.service'; +import { TaskRunnerProcess } from '@/task-runners/task-runner-process'; +import { TaskRunnerServer } from '@/task-runners/task-runner-server'; import { Telemetry } from '@/telemetry'; import { setupTestCommand } from '@test-integration/utils/test-command'; diff --git a/packages/cli/test/integration/runners/task-runner-module.external.test.ts b/packages/cli/test/integration/runners/task-runner-module.external.test.ts index bb61dae6d4..afb07c7e66 100644 --- a/packages/cli/test/integration/runners/task-runner-module.external.test.ts +++ b/packages/cli/test/integration/runners/task-runner-module.external.test.ts @@ -2,11 +2,11 @@ import { TaskRunnersConfig } from '@n8n/config'; import { mock } from 'jest-mock-extended'; import Container from 'typedi'; -import { MissingAuthTokenError } from '@/runners/errors/missing-auth-token.error'; -import { TaskRunnerModule } from '@/runners/task-runner-module'; +import { MissingAuthTokenError } from '@/task-runners/errors/missing-auth-token.error'; +import { TaskRunnerModule } from '@/task-runners/task-runner-module'; -import { DefaultTaskRunnerDisconnectAnalyzer } from '../../../src/runners/default-task-runner-disconnect-analyzer'; -import { TaskRunnerWsServer } from '../../../src/runners/runner-ws-server'; +import { DefaultTaskRunnerDisconnectAnalyzer } from '../../../src/task-runners/default-task-runner-disconnect-analyzer'; +import { TaskRunnerWsServer } from '../../../src/task-runners/task-runner-ws-server'; describe('TaskRunnerModule in external mode', () => { const runnerConfig = Container.get(TaskRunnersConfig); diff --git a/packages/cli/test/integration/runners/task-runner-module.internal.test.ts b/packages/cli/test/integration/runners/task-runner-module.internal.test.ts index db195001a7..0d4583517e 100644 --- a/packages/cli/test/integration/runners/task-runner-module.internal.test.ts +++ b/packages/cli/test/integration/runners/task-runner-module.internal.test.ts @@ -1,10 +1,10 @@ import { TaskRunnersConfig } from '@n8n/config'; import Container from 'typedi'; -import { TaskRunnerModule } from '@/runners/task-runner-module'; +import { TaskRunnerModule } from '@/task-runners/task-runner-module'; -import { InternalTaskRunnerDisconnectAnalyzer } from '../../../src/runners/internal-task-runner-disconnect-analyzer'; -import { TaskRunnerWsServer } from '../../../src/runners/runner-ws-server'; +import { InternalTaskRunnerDisconnectAnalyzer } from '../../../src/task-runners/internal-task-runner-disconnect-analyzer'; +import { TaskRunnerWsServer } from '../../../src/task-runners/task-runner-ws-server'; describe('TaskRunnerModule in internal mode', () => { const runnerConfig = Container.get(TaskRunnersConfig); diff --git a/packages/cli/test/integration/runners/task-runner-process.test.ts b/packages/cli/test/integration/runners/task-runner-process.test.ts index b21ef68640..89aa80d0f4 100644 --- a/packages/cli/test/integration/runners/task-runner-process.test.ts +++ b/packages/cli/test/integration/runners/task-runner-process.test.ts @@ -1,9 +1,9 @@ import Container from 'typedi'; -import { TaskRunnerWsServer } from '@/runners/runner-ws-server'; -import { TaskBroker } from '@/runners/task-broker.service'; -import { TaskRunnerProcess } from '@/runners/task-runner-process'; -import { TaskRunnerProcessRestartLoopDetector } from '@/runners/task-runner-process-restart-loop-detector'; +import { TaskBroker } from '@/task-runners/task-broker.service'; +import { TaskRunnerProcess } from '@/task-runners/task-runner-process'; +import { TaskRunnerProcessRestartLoopDetector } from '@/task-runners/task-runner-process-restart-loop-detector'; +import { TaskRunnerWsServer } from '@/task-runners/task-runner-ws-server'; import { retryUntil } from '@test-integration/retry-until'; import { setupBrokerTestServer } from '@test-integration/utils/task-broker-test-server'; diff --git a/packages/cli/test/integration/shared/utils/task-broker-test-server.ts b/packages/cli/test/integration/shared/utils/task-broker-test-server.ts index 9363fc089e..86651eb04c 100644 --- a/packages/cli/test/integration/shared/utils/task-broker-test-server.ts +++ b/packages/cli/test/integration/shared/utils/task-broker-test-server.ts @@ -3,7 +3,7 @@ import request from 'supertest'; import type TestAgent from 'supertest/lib/agent'; import Container from 'typedi'; -import { TaskRunnerServer } from '@/runners/task-runner-server'; +import { TaskRunnerServer } from '@/task-runners/task-runner-server'; export interface TestTaskBrokerServer { server: TaskRunnerServer; diff --git a/packages/core/src/node-execution-context/execute-context.ts b/packages/core/src/node-execution-context/execute-context.ts index f3e32608f3..089c3f500a 100644 --- a/packages/core/src/node-execution-context/execute-context.ts +++ b/packages/core/src/node-execution-context/execute-context.ts @@ -131,7 +131,7 @@ export class ExecuteContext extends BaseExecuteContext implements IExecuteFuncti settings: unknown, itemIndex: number, ): Promise> { - return await this.additionalData.startAgentJob( + return await this.additionalData.startRunnerTask( this.additionalData, jobType, settings, diff --git a/packages/workflow/src/Interfaces.ts b/packages/workflow/src/Interfaces.ts index bf2c6b6872..73d3367d22 100644 --- a/packages/workflow/src/Interfaces.ts +++ b/packages/workflow/src/Interfaces.ts @@ -2350,7 +2350,7 @@ export interface IWorkflowExecuteAdditionalData { secretsHelpers: SecretsHelpersBase; logAiEvent: (eventName: AiEvent, payload: AiEventPayload) => void; parentCallbackManager?: CallbackManager; - startAgentJob( + startRunnerTask( additionalData: IWorkflowExecuteAdditionalData, jobType: string, settings: unknown,