Google App脚本项目执行中的未知状态

时间:2019-05-09 00:48:43

标签: google-apps-script google-sheets triggers google-form

我有一个Google表单,现场工作人员会填写并提交。随附的javascript通过电子邮件将表单内容作为电子邮件发送给办公室中的每个人。

执行时间超长。一个报告有19496秒,这时Gsuite应该在5分钟后自动终止任何脚本。有些在Google应用程序脚本执行日志中具有“未知”状态,并且为0秒。

Gsuite配额是否用完了?我的脚本中有错误吗?

运行脚本触发器的用户也将收到回弹电子邮件,即使所有电子邮件都已通过,并且Google表格正常接收到来自Google表单的响应。

我尝试在顶部添加“ if(e.values &&!e.values [1]){return;}”,并添加“ return;”。在底部。它似乎并没有改变问题。

我编辑了下面的google app脚本,以删除电子邮件地址的真实列表,并缩短了报告的时间。 Google表单的目的是提供他们过去工作的真实摘要,而不仅仅是在电子邮件中“完成工作”。因此,他们改为填写15个问题的列表。

sys.path

我希望脚本终止,并且我不想收到退回邮件。救命!

3 个答案:

答案 0 :(得分:1)

我认为您可能会遇到我所说的虚假onFormSubmit触发器,并且我可能会尝试类似的事情。

function myFunction(e){
  if(e.values && e.values[1] && e.values[2] && e.values[3] && e.values[4] && e.values[5]) {
    var value1 = e.values[1];
    var value2 = e.values[2];
    var value3 = e.values[3];
    var value4 = e.values[4];
    var value5 = e.values[5];
    var subject1 = value5 + " Job #" + value2 + " " + value3 + " Job Report Submitted " + value1 + "    -oOo-";
    var message_html = "<b>Date:</b> " + value1 + "<br>" + 
      "<b>Job Number:</b> " + value2 + "<br>" +
        "<b>Site Name:</b> " + value3 + "<br>" +
          "<b>Client:</b> " + value4 + "<br>" +
            "<b>Crew Chief:</b> " + value5 + "<br>";            
    var chiefemail = "leo@email.com"; //setting leo email as the default - but this should not be used based on below 
    var chiefname  = "Leo E.";
    if (value5 == "Bryan N.") {
      chiefemail = "bryan@email.com";
      chiefname  = "Brian N";}
    else if (value5 == "Carl B.") {
      chiefemail = "carl@email.com";
      chiefname = "Carl B";
    }
    else if (value5 == "Clay W.") {
      chiefemail = "clay@email.com";
      chiefname = "Clay W";
    }
    else if (value5 == "Dakota P."){
      chiefemail = "dakota@email.com";
      chiefname = "Dakota P";
    }
    var EmailList = "brian@email.com," + chiefemail; 
    MailApp.sendEmail({
      to: EmailList,
      subject: subject1,
      htmlBody: message_html,
      name: chiefname,
      replyTo: chiefemail
    });
  }
}

您详细了解了here。您还可以检查堆栈驱动程序日志以查看发生了什么。

答案 1 :(得分:1)

最近我也开始发生这种情况。

根据执行记录,即使服务器返回的响应速度很快,我的goGet和goPost执行似乎仍在无限运行。

我注意到只有当我在私人浏览模式下以匿名用户身份运行doGet和doPost时,才会发生这种情况。如果我已登录,则执行记录对于该特定请求的行为正常。

在过去的1.5年中,我维护了相当大的Google Apps脚本,并且使用率很高。这是最近开始在我的脚本中发生的。令人震惊的是,您的SO帖子也很新。

将脚本复制到新脚本可以暂时解决此问题,但是最终新脚本也开始遇到此问题。新脚本开始显示这些症状后,代码的某些部分(特别是以编程方式打开和阅读Google表格)将停止正常工作并开始出现故障。因此,我认为这个问题不仅限于执行脚本中的视觉问题,而且还负面影响了该脚本中其他代码的实际行为。

答案 2 :(得分:1)

我有一个可以在几个月内正常工作的Google加载项脚本,并且最近开发出了与上述行为类似的行为-特别是函数以0秒的执行时间失败,并且类型为“未知”。

我还没有找到原因,不过今天我联系了Google Script支持人员,看看他们是否可以对此有所了解。

拥有发现的是一种解决方法。当我没有更改代码中的任何内容时,我的脚本开始出现这种奇怪的行为。但是,我已完成的工作已启用了V8运行时。如果我将其切换回旧的ES5“ Rhino”运行时,一切将恢复到以前的状态。

See this page for info on how to do that,然后尝试一下。我仍在为列出的任何不兼容问题梳理我的脚本,但没有发现任何不兼容之处,但是至少我的用户现在可以在搜索时继续使用该脚本!

在使用Rhino运行时时,类型为“未知”的执行将恢复为以前的值,这些值似乎都是“ Web应用程序”。