https://cloud.google.com/functions/docs/bestpractices/retries#set_an_end_condition_to_avoid_infinite_retry_loops
/**
* Background Cloud Function that only executes within
* a certain time period after the triggering event
*
* @param {object} event The Cloud Functions event.
* @param {function} callback The callback function.
*/
exports.avoidInfiniteRetries = (event, callback) => {
const eventAge = Date.now() - Date.parse(event.timestamp);
const eventMaxAge = 10000;
// Ignore events that are too old
if (eventAge > eventMaxAge) {
console.log(`Dropping event ${event} with age ${eventAge} ms.`);
callback();
return;
}
// Do what the function is supposed to do
console.log(`Processing event ${event} with age ${eventAge} ms.`);
callback();
};
Кажется, что функция всегда будет повторяться принудительно. Однако вы можете убедиться, что актуальная важная часть функции вызывается в интервале задержки.
Просто сделайте следующее:
if(eventAge < 1000 && eventAge > 0)
{
//Do stuff
}else if (eventAge < 3000 && eventAge > 1000) {
// Do stuff
}(...)
else{
return;
}
Таким образом, ваш фактический код будет выполняться только с интервалами, которые вы установили с помощью логики.