Я пытаюсь вызвать GCF из интерфейсного JS много раз в цикле. Но каждый фактический запуск функции (согласно журналам) случайно запаздывает.
В отличие от X # экземпляров GCF, вращающихся одновременно.
Я попытался упростить свое приложение до тестового примера Hello World, чтобы сначала решить эту проблему.
Фронтальное исполнение (100x)
for (i=0; i<100; i++) {
postData("https://us-central1-api-project-879174689499.cloudfunctions.net/delay-test").then(output => {console.log(output);});
}
Облачная функция Google
exports.helloWorld = async (req, res) => {
let message = req.query.message || req.body.message || 'Hello World!';
await sleep(5000);
res.status(200).send(message);
};
function sleep(ms){
return new Promise(resolve=>{
setTimeout(resolve,ms)
})
}
Вот вывод консоли (обратите внимание на временные метки):
https://i.imgur.com/SqeN57q.png
Вот журнал Dev-tools, чтобы доказать, что запросы происходят почти одновременно:
https://imgur.com/a/2qW4Iug
Вот журналы консоли Google (случайный запуск после вызова функции):
https://imgur.com/a/dcxPFF0