diff --git a/bin/configure-fastly.js b/bin/configure-fastly.js index c6f76411d..25e747139 100644 --- a/bin/configure-fastly.js +++ b/bin/configure-fastly.js @@ -8,6 +8,8 @@ var routeJson = require('../src/routes.json'); const FASTLY_SERVICE_ID = process.env.FASTLY_SERVICE_ID || ''; const S3_BUCKET_NAME = process.env.S3_BUCKET_NAME || ''; +const FASTLY_CONCURRENCY = process.env.FASTLY_CONCURRENCY || 1; + var fastly = require('./lib/fastly-extended')(process.env.FASTLY_API_KEY, FASTLY_SERVICE_ID); var extraAppRoutes = [ @@ -92,7 +94,7 @@ async.auto({ }], appRouteRequestConditions: ['version', function (results, cb) { var conditions = {}; - async.forEachOf(routes, function (route, id, cb2) { + async.eachOfLimit(routes, FASTLY_CONCURRENCY, function (route, id, cb2) { var condition = { name: fastlyConfig.getConditionNameForRoute(route, 'request'), statement: 'req.url ~ "' + route.pattern + '"', @@ -112,7 +114,7 @@ async.auto({ }], appRouteHeaders: ['version', 'appRouteRequestConditions', function (results, cb) { var headers = {}; - async.forEachOf(routes, function (route, id, cb2) { + async.eachOfLimit(routes, FASTLY_CONCURRENCY, function (route, id, cb2) { if (route.redirect) { async.auto({ responseCondition: function (cb3) { @@ -145,7 +147,7 @@ async.auto({ }; fastly.setFastlyHeader(results.version, header, cb3); }] - }, function (err, redirectResults) { + }, FASTLY_CONCURRENCY, function (err, redirectResults) { if (err) return cb2(err); headers[id] = redirectResults.redirectHeader; cb2(null, redirectResults); @@ -213,7 +215,7 @@ async.auto({ }; fastly.setFastlyHeader(results.version, header, cb2); }] - }, function (err, redirectResults) { + }, FASTLY_CONCURRENCY, function (err, redirectResults) { if (err) return cb(err); cb(null, redirectResults); }); @@ -259,12 +261,12 @@ async.auto({ }; fastly.setFastlyHeader(results.version, header, cb2); }] - }, function (err, redirectResults) { + }, FASTLY_CONCURRENCY, function (err, redirectResults) { if (err) return cb(err); cb(null, redirectResults); }); }] -}, function (err, results) { +}, FASTLY_CONCURRENCY, function (err, results) { if (err) throw new Error(err); if (process.env.FASTLY_ACTIVATE_CHANGES) { fastly.activateVersion(results.version, function (e, resp) {