首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机Utilities.sleep函数

随机Utilities.sleep函数
EN

Stack Overflow用户
提问于 2021-06-23 02:16:18
回答 1查看 341关注 0票数 1

如何在Google脚本中随机化Utilities.sleep函数?我有一个谷歌单张缩短链接功能。脚本如下所示:

代码语言:javascript
复制
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);

所以代码会变成这样:

代码语言:javascript
复制
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);的值随机化

类似于:

代码语言:javascript
复制
Utilities.sleep(RANDOM_FROM_1MINS-5MIN);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-23 02:58:31

您可以使用Math.random()生成一个随机数。在您的情况下,考虑到间隔在1到5分钟之间,您可以使用:

代码语言:javascript
复制
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分钟可能不是一个好主意。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68092723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档