Я создал сценарий в Google Таблицах, который работает хорошо, но через некоторое время я получаю следующую ошибку: Исключение: Служба вызывается слишком много раз в течение одного дня: urlfetch
Кажется, я вызвал работает как 200-300 раз в день, для того, что я проверил, он должен быть ниже предела.
Я читал, что мы можем использовать кеш, чтобы избежать этой проблемы, но не знаю, как использовать его в моем коде.
function scrapercache(url) {
var result = [];
var description;
var options = {
'muteHttpExceptions': true,
'followRedirects': false,
};
var cache = CacheService.getScriptCache();
var properties = PropertiesService.getScriptProperties();
try {
let res = cache.get(url);
if (!res) {
// trim url to prevent (rare) errors
url.toString().trim();
var r = UrlFetchApp.fetch(url, options);
var c = r.getResponseCode();
// check for meta refresh if 200 ok
if (c == 200) {
var html = r.getContentText();
cache.put(url, "cached", 21600);
properties.setProperty(url, html);
var $ = Cheerio.load(html); // make sure this lib is added to your project!
// meta description
if ($('meta[name=description]').attr("content")) {
description = $('meta[name=description]').attr("content").trim();
}
}
result.push([description]);
}
}
catch (error) {
result.push(error.toString());
}
finally {
return result;
}
}
как я могу использовать такой кеш для улучшения моего скрипта, пожалуйста?
var cache = CacheService.getScriptCache();
var result = cache.get(url);
if(!result) {
var response = UrlFetchApp.fetch(url);
result = response.getContentText();
cache.put(url, result, 21600);
Заранее спасибо