Files
n8n-enterprise-unlocked/packages/cli/src/services/orchestration.handler.base.service.ts
Michael Auerswald afa683a06f refactor(core): Have one orchestration service per instance type (#7303)
webhook instances will not listen to either worker or event log messages
on the Redis pub/sub channel
2023-10-06 13:58:11 +02:00

34 lines
937 B
TypeScript

import Container from 'typedi';
import type { WorkerCommandReceivedHandlerOptions } from './orchestration/worker/handleCommandMessageWorker';
import { RedisService } from './redis.service';
import type { RedisServicePubSubSubscriber } from './redis/RedisServicePubSubSubscriber';
export abstract class OrchestrationHandlerService {
protected initialized = false;
redisSubscriber: RedisServicePubSubSubscriber;
readonly redisService: RedisService;
constructor() {
this.redisService = Container.get(RedisService);
}
async init() {
await this.initSubscriber();
this.initialized = true;
}
async initWithOptions(options: WorkerCommandReceivedHandlerOptions) {
await this.initSubscriber(options);
this.initialized = true;
}
async shutdown() {
await this.redisSubscriber?.destroy();
this.initialized = false;
}
protected abstract initSubscriber(options?: WorkerCommandReceivedHandlerOptions): Promise<void>;
}