- /**
- *
- * @param elementData
- * @returns
- * @public
- */
- public async addElement(elementData: WorkerData): Promise<void> {
- if (!this.workerSet) {
- throw new Error('Cannot add a WorkerSet element: workers\' set does not exist');
- }
- if (this.getLastWorkerSetElement().numberOfWorkerElements >= this.workerOptions.elementsPerWorker) {
- await this.startWorker();
- }
- this.getLastWorker().postMessage({
- id: WorkerMessageEvents.START_WORKER_ELEMENT,
- data: elementData
- });
- this.getLastWorkerSetElement().numberOfWorkerElements++;
- // Start element sequentially to optimize memory at startup
- if (this.workerOptions.elementStartDelay > 0) {
- await Utils.sleep(this.workerOptions.elementStartDelay);
- }
- }
-
- /**
- *
- * @returns
- * @public
- */