- private startWorker(): void {
- const worker = new Worker(this.workerScript);
- worker.on('message', () => { });
- worker.on('error', () => { });
- worker.on('exit', (code) => {
- if (code !== 0) {
- console.error(`Worker stopped with exit code ${code}`);
+ private addWorkerSetElement(): WorkerSetElement {
+ const worker = new Worker(this.workerScript, {
+ env: SHARE_ENV,
+ ...this.workerOptions.poolOptions.workerOptions,
+ });
+ worker.on(
+ 'message',
+ this.workerOptions?.poolOptions?.messageHandler ?? WorkerConstants.EMPTY_FUNCTION,
+ );
+ worker.on(
+ 'error',
+ this.workerOptions?.poolOptions?.errorHandler ?? WorkerConstants.EMPTY_FUNCTION,
+ );
+ worker.on('error', (error) => {
+ this.emitter?.emit(WorkerSetEvents.error, error);
+ if (this.workerOptions?.poolOptions?.restartWorkerOnError) {
+ this.addWorkerSetElement();