Skip to content

Commit

Permalink
Restrict the number of active promises when creating/deleting entitie…
Browse files Browse the repository at this point in the history
…s on the brokers

Fix EnMasseProject#3090
  • Loading branch information
k-wall committed Aug 16, 2019
1 parent 2490aaa commit bfce50e
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions agent/lib/broker_controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ var rhea = require('rhea');
var artemis = require('./artemis.js');
var myevents = require('./events.js');
var myutils = require('./utils.js');
var plimit = require('p-limit');

function BrokerController(event_sink) {
events.EventEmitter.call(this);
Expand Down Expand Up @@ -393,8 +394,9 @@ BrokerController.prototype.delete_address_and_settings = function (a) {
};

BrokerController.prototype.delete_addresses = function (addresses) {
var self = this;
return Promise.all(addresses.map(function (a) { return self.delete_address(a); }));
var limit = plimit(250);
let delete_fn = limit.bind(null, this.delete_address.bind(this));
return Promise.all(addresses.map(delete_fn));
};

BrokerController.prototype.create_address = function (a) {
Expand Down Expand Up @@ -442,8 +444,9 @@ BrokerController.prototype.create_address_and_settings = function (a, settings)
};

BrokerController.prototype.create_addresses = function (addresses) {
var self = this;
return Promise.all(addresses.map(function (a) { return self.create_address(a); }));
var limit = plimit(250);
let create_fn = limit.bind(null, this.create_address.bind(this));
return Promise.all(addresses.map(create_fn));
};

BrokerController.prototype.check_broker_addresses = function () {
Expand Down

0 comments on commit bfce50e

Please sign in to comment.