【发布时间】:2015-04-06 19:21:33
【问题描述】:
我们有一个 Apps Script 应用程序是由 Google 表单的“提交表单”事件触发的。我们获取表单中收集的信息,并在复制预定义的 Google 文档模板后,将表单数据写入新创建的 Google 文档。在大多数情况下 - 这是可行的,但是有些日子(比如今天)有很多
“很抱歉,出现服务器错误。请稍候,然后重试。”
错误被抛出。它被抛出的代码行是:
var copy = template.makeCopy(title);
Utilities.sleep(4000);
return copy;
我相信我遵循了最佳实践,但使用了Utilities.sleep() 函数,但它似乎没有帮助。仅今天,我就看到这个错误至少出现了 15 次!令人沮丧的是,这并不一致。如前所述,该应用程序可以运行几天而没有错误,然后在其他日子我会收到一堆这些错误。
我在 2014 年 2 月看到一个 issue 登录,由我主演,但似乎没有任何解决方案。
请任何人指出我可以做些什么来停止看到该错误的正确方向?
【问题讨论】:
-
代码确实工作的次数,运行需要多长时间?这个被复制的文件有多大?如果手动复制文件,是否需要很长时间?
-
运行通常需要 2 到 3 分钟。过程是:1)获取正确的模板,2)制作模板的副本。 3)在副本中进行查找和替换,并用表格数据填写新副本 4)将填写表格的人作为编辑者添加到新副本中。 95% 的时间应用程序会在第 2 步抛出该错误 :( 所以这是一个简单的 DriveApp makeCopy() 调用,正如我之前提到的,它在 80% 的时间里都可以正常工作。我想不出这个 :(
-
如果每个函数运行的副本不超过一个,并且数据不多,那么运行 2 或 3 分钟是很长的时间。您需要评估每行代码运行多长时间,并查看问题出在哪里。我想知道您的替换代码是否需要很长时间。
标签: google-apps-script google-drive-api google-forms