【问题标题】:Are Google Apps Script execution timeouts different for trigger executions and editor executions?触发器执行和编辑器执行的 Google Apps 脚本执行超时是否不同?
【发布时间】:2020-10-13 18:41:07
【问题描述】:

我有一个 Google 表格预算电子表格,它使用 javascript 功能自动为每周添加一个新表格(基于打开电子表格的当前日期)。多年来,我一直在使用这个脚本的迭代。

就在最近,我的脚本开始超时。 [编辑:过去,我曾使用相同的脚本一次添加和更新多张工作表。现在我似乎连一个都无法成功添加。] 但是,如果我打开脚本编辑器并从那里运行该函数,它会完美运行。在执行日志中,我可以看到触发器执行超时大约 30 秒,但编辑器执行每次都有效,大约需要 40 秒。

在输入此内容时,我注意到在 Google 的配额中,每个自定义函数有 30 秒的运行时间限制。为什么从编辑器触发时不一样?

【问题讨论】:

  • 来自here:“下面显示的限制仅用于帮助您测试脚本。所有限制都可能随时取消、减少或更改,恕不另行通知。”我认为这是他们说的“因为我们是这么说的。”
  • 嗯。 . .是的。 . .
  • 你的脚本是 V8 运行时版本吗?
  • 不是,但是当我注意到它没有正确完成时,我打开编辑器看到V8消息,我切换了。所以在 OP 的时候,是的,它是在 V8 中。它在 V8 中的行为似乎与我切换之前相同。

标签: javascript google-apps-script google-sheets timeout


【解决方案1】:

根据 offical quota limitations Apps 脚本脚本(即从脚本编辑器或使用类似 onEdit() 的触发器运行的脚本)每次执行的超时限制为 6 分钟,而自定义函数的超时限制为每次执行 30 秒执行。

这些custom functions 是为在电子表格中用作公式而创建的 Apps 脚本函数,因此它们的运行方式不同,每次执行的超时时间也不同。

【讨论】:

  • 是的,这对我有一些帮助。我不知道当我创建一个函数时,它打算在电子表格中用作公式。我只是试图通过创建和调用函数来遵循良好的编码礼仪,但也许我可以剥离代码以消除自定义函数。 . .
  • 感谢您的帮助。我决定让 onOpen() 创建一个新菜单项,我可以在其中手动启动自定义功能,因此 30 秒超时不再是问题。我仍然不确定为什么直到最近才发生。也许我添加了足够多的预算线,以至于流程太长了?但这很符合我的目的!
  • 是的,所以如果您使用 onOpen() 触发器,您将获得 6 分钟超时,因为您没有从电子表格自定义公式调用 Apps 脚本函数(而是从菜单调用函数酒吧)。无论如何,我很高兴我能帮上忙:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多