Merge pull request #3217 from LLK/hotfix/fastly-concurrency

[Develop] Add concurrency limits to async Fastly API requests
This commit is contained in:
Ray Schamp 2019-08-05 16:20:19 -04:00 committed by GitHub
commit fecf3a81d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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) {