在Google Apps脚本中对大型脚本进行排序

时间:2015-01-26 13:30:09

标签: google-apps-script google-sheets

我们使用Google表格存储和操作来自我们网络应用程序用户的基于事件的数据。最近,我一直在使用Google Apps脚本来自动化这个数据处理过程,现在我正在寻找一些建议。

我的脚本运行良好一段时间,然后在上周末,我开始收到错误,'超过最长执行时间'。我在前两天工作正常的两个脚本上收到此错误,两者之间没有任何编辑。我正在处理大量数据,甚至在我的电子表格上多次达到2,000,000个单元格限制。

我的目标是能够将我的七个脚本排在一起,以便我可以使用一个触发器将它们全部触发。如何在不达到最大执行时间错误的情况下执行此操作?有时,当我尝试删除其中的一个工作表时,我的电子表格会崩溃。电子表格的大小是否会导致脚本失败?

我已尽力遵循Google文档中列出的最佳做法,但有人可以推荐电子表格和脚本组织的最佳做法吗?

2 个答案:

答案 0 :(得分:4)

您可能对Bruce Mcpherson在Google Apps脚本中进行大规模并行处理所编写的工具感兴趣。

http://ramblings.mcpher.com/Home/excelquirks/htmlservice/parallel

http://ramblings.mcpher.com/Home/excelquirks/htmlservice/parallel/implement

答案 1 :(得分:1)

Here您可以在应用程序脚本中找到与配额相关的文档,因为您可以看到脚本运行时间为6分钟后,服务器将停止脚本并抛出异常,就像您遇到的那样。

如果您已经在应用Google的最佳做法,请尝试查找瓶颈的位置。 - 您需要阅读完整的数据范围或只是其中的一部分吗? - 您可以存储任何信息(例如在缓存或属性中),这样您就不必再计算或阅读了吗? - 您是否跟踪每个脚本的时间? - 你在阅读每个脚本的全部数据吗?或者只读一遍并将其作为参数传递给其他脚本?

希望这会有所帮助。