gpt4 book ai didi

google-apps-script - 我如何每秒调用一次谷歌脚本触发器?

转载 作者:行者123 更新时间:2023-12-04 12:39:28 30 4
gpt4 key购买 nike

现实生活中的问题是我想每 X 秒调用一次 api,但似乎无法使用 Google 脚本来完成它。

据我所知,您可以每 1、5、10、15 或 30 分钟调用一次触发器。有没有办法每秒运行一次 Google 脚本?

  function createTimeDrivenTriggers() {
ScriptApp.newTrigger('myFunction')
.timeBased()
.everyMinutes(1) //I can not write 0.01 instead of 1 here.
.create();
}

function myFunction() {
Logger.log("Logging");
}

createTimeDrivenTriggers();

最佳答案

基于时间的触发器:

您可以使用 after(durationMilliseconds) 方法在指定的毫秒数后调用您的函数,如果您在函数末尾创建触发器,如下所示:

function myFunction() {
Logger.log("Logging");
ScriptApp.newTrigger("myFunction")
.timeBased()
.after(1000 * X) // Fire "myFunction" after X seconds
.create();
}

但似乎这种方法(至少目前)不能用于在不到一分钟后触发函数,正如您在 this Issue Tracker case 中看到的那样.

除此之外,没有可用于您目的的基于时间的触发器

解决方法:

如果您只想在 X 秒后执行一些操作,另一种选择是使用 Utilities.sleep(milliseconds)和一个 for 循环。

当然,您最终会到达 Apps Script execution time limit ,因此您应该:

  • 找出在达到此限制之前您可以进行多少次迭代。
  • 使每次执行都进行此迭代次数。
  • 使用 after(durationMilliseconds) 创建一个触发器,它会在一定时间后触发您的函数。

可能是这样的:

function myFunction() {
var numIterations = 10; // Number of iterations before reaching time limit (change accordingly)
for (var i = 0; i < numIterations; i++) {
// Your actions
Utilities.sleep(1000 * X); // Pause execution for X seconds
}
ScriptApp.newTrigger("myFunction")
.timeBased()
.after(1000 * Y) // Fire "myFunction" after Y seconds
.create();
}

这样,您可以在大部分时间保持您想要的频率,只有在达到执行时间限制时(每 6 分钟或每 30 分钟,取决于您的帐户),该频率会降低一次(大约 1 分钟) , 在回到所需的频率之前。这不是您期望的行为,但我认为这是您最接近的行为。

引用:

关于google-apps-script - 我如何每秒调用一次谷歌脚本触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60926427/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com