2013-01-14 100 views
1

有没有办法捕捉到这个GAS错误:“超出最大执行时间”捕获超过最大执行时间?

我的意思是抓住try ... catch(e)//到目前为止它不适用于我。

感谢

+1

不知道你怎么可以! - 你已经走了超过限制,允许更多的代码在catch块中执行只允许人们跳过限制,并且运行时没有任何限制 –

回答

2

写在评论你的问题,那是不可能的。但是,您可以在执行开始时在scriptDB或属性中设置一个标志,并在执行到正常结束时清除该标志,这样您可以在下次运行时发现脚本在最后一次运行时正常结束时间并尝试采取纠正措施,如果没有。

1

上面的答案是正确的;这是不可能的。 pbhd提到的解决方法的一个简单替代方法是简单地跟踪脚本的运行时间(例如定期比较new Date().getTime()的结果),然后在达到最大执行时间之前运行包含在catch语句中的任何内容。最长6分钟(reference)。

这样,你不必捕捉错误 - 你可以抢占它。

-2

在正常测试期间,可能会意外创建一个消耗每日执行时间限制100%的无限循环(或非常长的循环)循环。

即使你知道你有什么圆顶错立即,你不能马上与谷歌的脚本另外24小时重新尝试 - 因而显著放缓持续发展,也许迫使开发商做一些其他的工作,把他的重点/“注意力流”从目前的问题中解放出来。这几乎总是不好的。

我的产品(“IBM OLIVER CICS测试/调试” - 见Wikipedia article)大约37年前 - - 解决了这个问题 - 和许多其他具有任何特定交易的时间限制和拦截导致超时,允许的选项: - 或

  1. 延续
  2. 检查/修改变量
  3. “手动” 重试(同一时间)或
  4. 中止。

谷歌可以很容易地实现这种方法 - 如果执行时间看起来太重了,可以“暂停”。我对OLIVER中的其他资源有类似的解决方案 - 例如过多的API调用(“可能的宏循环”)和过多的内存使用。

似乎需要像我这样的“老式计时器”来解决已存在的问题“从一开始就存在”(当然还有PC的想法之前)。

谷歌目前的“解决方案”(即绝对限制)只能帮助谷歌保持自己的服务器不被淹没。他们很容易就能做到OLIVER多年前做的事情。顺便说一下,在Wikipedia文章中不应该有“IBM”前缀 - 这是我自己的产品,一些小丑维基百科编辑器将它改为包含前缀。(顺便说一下,Google不会阻止其他脚本运行在相同的s/s上 - 也许只能使用最小的额外时间(即同一电子表格中的脚本仍然有效)。我试着重命名原始脚本作为一个实验,但它是一个很短的时间内“超过执行时间”错误后停止

GIZ-A-JOB谷歌 - 你知道它值得

+0

我没有得到这个答案,看起来像是在吹嘘我。 – Adelin