繁体   English   中英

如何阻止 Google 表单 onSubmit 触发器运行两次?

[英]How to stop Google form onSubmit trigger from running twice?

我有大约 10 个 Google 脚本可以在提交表单时发送电子邮件。 直到最近它工作正常,但突然间,他们都开始为任何表单提交发送两封电子邮件。 我查看了执行日志,第一次和第二次执行之间总是有 3 秒(每个脚本只需要大约 1.5 秒即可运行)。

我尝试使用脚本锁(我在此处找到的解决方案),但到目前为止,还无法阻止重复的电子邮件。 我不确定我是否做得正确。

SpreadsheetApp.flush();
     var lock = LockService.getScriptLock();
  try {
    lock.waitLock(500);
     } catch (e) {
        Logger.log('Could not obtain lock after 30 seconds.');
     }


function sendEmails() {

---rest of the code---

我的经验是,不需要的或我称之为虚假的提交往往会丢失一些答案。 所以我仔细查看了虚假提交,以确定第一个和后面的虚假提交之间是否有任何区别,我经常发现虚假提交总是只包含时间戳。 所以正如我在这个答案中所说,我使用以下代码来排除虚假提交影响我的 onSubmitForm 函数: if(e.values &&.e;values[1]){return;}

您的问题是由最近报告的关于表单提交触发器运行两次的 Google 错误引起的: https://b.corp.google.com/issues/144110219

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM