const Configuration = require('../utils/Configuration');
+const EventEmitter = require('events');
const {Worker} = require('worker_threads');
const Pool = require('worker-threads-pool');
*
* @param {String} workerScript
* @param {Object} workerData
+ * @param {Number} numConcurrentWorkers
*/
- constructor(workerScript, workerData) {
+ constructor(workerScript, workerData, numConcurrentWorkers) {
+ this._workerData = workerData;
+ this._workerScript = workerScript;
+ this._numConcurrentWorkers = numConcurrentWorkers;
if (Configuration.useWorkerPool()) {
this._pool = new Pool({max: Configuration.getWorkerPoolSize()});
}
- this._workerData = workerData;
- this._workerScript = workerScript;
+ }
+
+ /**
+ * @param {Number} numConcurrentWorkers
+ * @private
+ */
+ set _numConcurrentWorkers(numConcurrentWorkers) {
+ if (numConcurrentWorkers > 10) {
+ EventEmitter.defaultMaxListeners = numConcurrentWorkers + 1;
+ }
+ this._concurrentWorkers = numConcurrentWorkers;
+ }
+
+ get _numConcurrentWorkers() {
+ return this._concurrentWorkers;
}
/**