+ worker.on(
+ 'message',
+ this.workerOptions?.poolOptions?.messageHandler ?? WorkerConstants.EMPTY_FUNCTION
+ );
+ worker.on(
+ 'error',
+ this.workerOptions?.poolOptions?.errorHandler ?? WorkerConstants.EMPTY_FUNCTION
+ );
+ worker.on('error', (error) => {
+ if (this.emitter !== undefined) {
+ this.emitter.emit(WorkerSetEvents.error, error);
+ }
+ if (this.workerOptions?.poolOptions?.restartWorkerOnError) {
+ this.addWorkerSetElement();
+ }
+ });
+ worker.on(
+ 'online',
+ this.workerOptions?.poolOptions?.onlineHandler ?? WorkerConstants.EMPTY_FUNCTION
+ );
+ worker.on(
+ 'exit',
+ this.workerOptions?.poolOptions?.exitHandler ?? WorkerConstants.EMPTY_FUNCTION
+ );
+ worker.once('exit', () =>
+ this.removeWorkerSetElement(this.getWorkerSetElementByWorker(worker))
+ );
+ const workerSetElement: WorkerSetElement = { worker, numberOfWorkerElements: 0 };
+ this.workerSet.add(workerSetElement);
+ return workerSetElement;