From 4583c25b1bd922a1c154d88a9ae4b57fba8ae747 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Alby?= Date: Tue, 11 Jun 2019 15:15:04 +0200 Subject: [PATCH] Merge pull request #1843 from overleaf/ta-limit-affiliation-rate Limit the Number of Affiliations Created Simultaneously GitOrigin-RevId: 242d3f3a2859eb2114f43091e7ca52534b282396 --- .../app/src/Features/Institutions/InstitutionsController.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/web/app/src/Features/Institutions/InstitutionsController.js b/services/web/app/src/Features/Institutions/InstitutionsController.js index 6e1b2dc479..6d254dff7a 100644 --- a/services/web/app/src/Features/Institutions/InstitutionsController.js +++ b/services/web/app/src/Features/Institutions/InstitutionsController.js @@ -17,6 +17,7 @@ const UserGetter = require('../User/UserGetter') const { addAffiliation } = require('../Institutions/InstitutionsAPI') const FeaturesUpdater = require('../Subscription/FeaturesUpdater') const async = require('async') +const ASYNC_AFFILIATIONS_LIMIT = 10 module.exports = InstitutionsController = { confirmDomain(req, res, next) { @@ -48,8 +49,9 @@ var affiliateUsers = function(hostname, callback) { return callback(error) } - return async.map( + return async.mapLimit( users, + ASYNC_AFFILIATIONS_LIMIT, (user, innerCallback) => affiliateUserByReversedHostname( user, @@ -70,7 +72,7 @@ var affiliateUserByReversedHostname = function( const matchingEmails = user.emails.filter( email => email.reversedHostname === reversedHostname ) - return async.map( + return async.mapSeries( matchingEmails, (email, innerCallback) => addAffiliation(