【问题标题】:Google Form Submit trigger activates multiple times on submitGoogle 表单提交触发器在提交时激活多次
【发布时间】:2018-12-20 22:43:29
【问题描述】:

我有一个脚本,它自己运行得非常好。但是,当我通过填写表单添加触发器时,它最多连续触发五次!

代码太长,这里复制不过脚本:

  • 接受表单的输入
  • 用联系人页面的最后一行填充另一个页面上的一些其他字段
  • 抓取主驱动器并制作文档列表
  • 创建一个新文件夹
  • 将列表中的文件复制到 新文件夹
  • 向填写表格的人发​​送电子邮件
  • 传递文件夹的所有权

我玩过 Locks (getScriptLock),它有时会起作用 b a) 我不太了解它,而且 b) 它仍然设法挣脱并有时会进行第二次运行。这使我的驱动器和收件箱变得杂乱无章,因为运行到锁中的错误和在锁周围触发额外的文件夹。我尝试在电子表格上设置一个硬编码点,该点在第一次通过脚本运行联系表上的行时被填充,理论上会阻塞它并阻止它再次运行......但这也不起作用。

有没有人听说过从表单输入多次触发的脚本?

【问题讨论】:

  • 如果您的响应速度快于脚本可以执行的速度,请考虑切换到记录已处理行的定时“批处理器”。

标签: google-apps-script triggers google-forms


【解决方案1】:

好的,至少从 2015 年开始,在 Google 表单 > 表格中就可以看到这种行为的进一步研究。它似乎与服务器负载/一天中的时间有关——在营业时间之后,它仅发生 10 次,但在此期间大约是 60%。

虽然我确实在脚本的一部分上设置了用户锁,但锁并没有真正起作用。

我所做的是在不同时间写入工作表并检查这些写入是否发生。仅仅一个还不足以阻止这种行为,我在四个不同的地方抛出错误并终止额外的脚本,并且根据日志,当它变坏时它们都会被绊倒(4-8 个实例)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 2015-08-10
    • 1970-01-01
    相关资源
    最近更新 更多