如何在Google脚本中随机化Utilities.sleep函数?我有一个谷歌单张缩短链接功能。脚本如下所示:
function ShortURL(longUrl) {
const url = "http://example.com/api/url/add";
const params = {
method: "post",
headers: { Authorization: "Token MYTOKEN" },
contentType: "application/json",
payload: JSON.stringify({
"url": longUrl
})
};
const res = UrlFetchApp.fetch(url, params);
var shortUrl = JSON.parse(res.getContentText()).short;
Logger.log(shortUrl);
return shortUrl;}但是当我运行它(获取大约100个urls)时,它会抛出错误:
异常:一天内调用太多次的服务: urlfetch。(第11行)。
在搜索和询问堆栈溢出之后,他们建议我使用Utilities.sleep(5000);
所以代码会变成这样:
function ShortURL(longUrl) {
const url = "http://example.com/api/url/add";
const params = {
method: "post",
headers: { Authorization: "Token MYTOKEN" },
contentType: "application/json",
payload: JSON.stringify({
"url": longUrl
})
};
const res = UrlFetchApp.fetch(url, params);
var shortUrl = JSON.parse(res.getContentText()).short;
Logger.log(shortUrl);
Utilities.sleep(5000);
return shortUrl;}但是,它只是将错误挂起5秒。如何将Utilities.sleep(5000);的值随机化
类似于:
Utilities.sleep(RANDOM_FROM_1MINS-5MIN);发布于 2021-06-23 02:58:31
您可以使用Math.random()生成一个随机数。在您的情况下,考虑到间隔在1到5分钟之间,您可以使用:
const min = 60000; // milliseconds in one minute
const max = 300000; // milliseconds in five minutes
const waitTime = Math.floor(Math.random() * (max - min + 1) ) + min;
Utilities.sleep(waitTime);请注意,脚本只能一次为六分钟运行,因此使用5分钟可能不是一个好主意。
https://stackoverflow.com/questions/68092723
复制相似问题