X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2FWorker.js;h=db82e8215fd0dad8fca89da13431c36f3c5c195d;hb=8bce55bf352af9b46f2285d8979948b8ec0adee0;hp=4b7c68ed6b777a8767467a323df928f29fb8a5c7;hpb=7dde0b73302613be132c41e1f28a42de555dc2b6;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/Worker.js b/src/charging-station/Worker.js index 4b7c68ed..db82e821 100644 --- a/src/charging-station/Worker.js +++ b/src/charging-station/Worker.js @@ -1,4 +1,5 @@ const Configuration = require('../utils/Configuration'); +const EventEmitter = require('events'); const {Worker} = require('worker_threads'); const Pool = require('worker-threads-pool'); @@ -8,13 +9,30 @@ class Wrk { * * @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; } /**