【问题标题】:Trigger execution >30s; doesn't make sense触发执行>30s;没有意义
【发布时间】:2021-03-17 03:10:11
【问题描述】:

当 onEdit 触发的工作表发生更改时,我正在更新 Google 工作表中的单个单元格。简单的。我已经使用了一个简单且可安装的触发器来执行此操作,它们的运行时间似乎都超过了 30 秒。不过,可安装的触发器至少会完成。

为什么执行需要这么长时间?有更快的方法吗?

function updateTime(e) {
    var ss = e.source;
    ss.getRange("B"+e.range.getRow()).setValue(new Date());
}

【问题讨论】:

  • 很可能您的电子表格有很长的重新计算时间。请添加电子表格的更多详细信息,即有多少张工作表,每个单元格有多少个,加载电子表格需要多长时间(您可以使用 Chrome DevTools > Performance Ctrl + Shift + E 来衡量)
  • 你是对的!加载需要一段时间,但这不是主要问题。我检查了电子表格设置,它开启了迭代计算。呃。感谢您指点我重新计算

标签: google-apps-script google-sheets


【解决方案1】:
function onEdit(e) {
  e.range.getSheet().getRange(e.range.rowStart,2).setValue(new Date());
}

您不需要可安装的触发器

【讨论】:

  • 这更严格,谢谢。一个简单的触发器可以在 30 秒时超时,我发现 onEdit 执行时间不稳定。可安装的触发器不会超时,因此更可靠。
  • 如果超时,那么您必须拥有多个与 onEdit 触发器相关联的功能,或者您没有告诉我们您的情况。因为这不应该花那么长时间。
  • 我同意。它不应该。没有其他触发器或函数——原因是迭代计算已开启。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多