The concurrent limit for a sheets published csv for a simple 1 sheet(tab) file is 500.
Test:
You can test this using UrlFetchApp.fetchAll()
, since it makes concurrent requests.
function getConcurrentLimit_(numOfSimultaneousReq, id = '[[[PUBLISHED ID]]]') {
Utilities.sleep(5 * 1000);//sleep 5s before starting
const url = `https://docs.google.com/spreadsheets/d/e/${id}/pub?gid=0&single=true&range=A1:B1&output=csv`,
urls = [];
((i) => {
while (--i) urls.push({ url, muteHttpExceptions: true });
})(numOfSimultaneousReq);
const res = UrlFetchApp.fetchAll(urls);
const statusCodes = res.map((e) => e.getResponseCode());
const totalFailures = statusCodes.filter((e) => e !== 200).length;
const firstFailureAt = statusCodes.findIndex((c) => c !== 200);
return { numOfSimultaneousReq, firstFailureAt, totalFailures };
}
function test166() {
console.log(
[100, 500, 600, 800, 1000]
.flatMap((e) => Array(3).fill(e))//repeat each test thrice
.map((e) => getConcurrentLimit_(e))
);
}
Results:
[ { numOfSimultaneousReq: 100, firstFailureAt: -1, totalFailures: 0 },
{ numOfSimultaneousReq: 100, firstFailureAt: -1, totalFailures: 0 },
{ numOfSimultaneousReq: 100, firstFailureAt: -1, totalFailures: 0 },
{ numOfSimultaneousReq: 500, firstFailureAt: -1, totalFailures: 0 },
{ numOfSimultaneousReq: 500, firstFailureAt: -1, totalFailures: 0 },
{ numOfSimultaneousReq: 500, firstFailureAt: -1, totalFailures: 0 },
{ numOfSimultaneousReq: 600, firstFailureAt: 19, totalFailures: 68 },
{ numOfSimultaneousReq: 600, firstFailureAt: -1, totalFailures: 0 },
{ numOfSimultaneousReq: 600, firstFailureAt: 71, totalFailures: 78 },
{ numOfSimultaneousReq: 800, firstFailureAt: 9, totalFailures: 256 },
{ numOfSimultaneousReq: 800, firstFailureAt: 28, totalFailures: 99 },
{ numOfSimultaneousReq: 800, firstFailureAt: 43, totalFailures: 125 },
{ numOfSimultaneousReq: 1000, firstFailureAt: 0, totalFailures: 402 },
{ numOfSimultaneousReq: 1000, firstFailureAt: 17, totalFailures: 398 },
{ numOfSimultaneousReq: 1000, firstFailureAt: 4, totalFailures: 392 } ]
As you can see, failures start at 600 concurrent requests.