Google 应用脚本项目执行中的未知状态
Unknown Status in Google App Script Project Executions
我有一份 Google 表格,供现场工作人员填写并提交。附件 javascript 将表格内容作为电子邮件发送给办公室的每个人。
执行时间超长。其中一个报告了 19496 秒,此时 Gsuite 应该会在 5 分钟后自动终止任何脚本。有些在 Google 应用程序脚本执行日志中具有 "Unknown" 状态和 0 秒。
Gsuite 配额用完了吗?我的脚本有错误吗?
用户 运行 脚本触发器也收到退回电子邮件,即使所有电子邮件都在处理,并且 Google sheet 正在接收来自 Google 表格正常。
我尝试在顶部添加 "if(e.values && !e.values[1]){return;}",在底部添加 "return;"。它似乎并没有改变这个问题。
我编辑了下面的 google 应用程序脚本以删除电子邮件地址的真实列表,并缩短了报告。 Google 表格的目的是提供他们日常工作的真实摘要,而不仅仅是在电子邮件中 "Job is done"。因此,他们填写了 15 个问题的列表。
function myFunction(e){
// Set values for event "e" from Response form, each number being a column in the spreadsheet
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];
// Build subject and message for email that will be sent out
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>";
// Send email to chief, of what the chief submitted through the Response form
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";
}
// Send emails to all office staff:
var EmailList = "brian@email.com," + chiefemail;
MailApp.sendEmail({
to: EmailList,
subject: subject1,
htmlBody: message_html,
name: chiefname,
replyTo: chiefemail
});
}
我希望脚本终止,我不想收到退回邮件。求助!
我认为您可能遇到了我所说的虚假 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
});
}
}
您阅读更多相关内容 。您还可以检查堆栈驱动程序日志以查看发生了什么。
最近我也开始出现这种情况。
根据执行记录,我的 goGet 和 goPost 执行似乎是 运行 无限,即使服务器 returns 响应相当快。
我注意到只有当我 运行 doGet 和 doPost 作为匿名用户在隐私浏览模式下时才会发生。如果我已登录,则执行记录会针对该特定请求正常运行。
我维护了一个相当大的 Google Apps 脚本,在过去 1.5 年中使用率很高。我的脚本最近才开始出现这种情况。令人震惊的是,您的 SO post 也是相当新的。
将脚本复制到新脚本可暂时解决此问题,但最终新脚本也会出现此问题。一旦新脚本开始显示这些症状,代码的某些部分(特别是以编程方式打开和阅读 Google 表格)就会停止正常工作并开始出现故障。所以,我认为这个问题不仅仅是执行记录中的一个视觉问题,它也会对该脚本中我的其他代码的实际行为产生负面影响。
我有一个 Google 附加脚本,它可以正常工作几个月,并且最近出现了一些与所描述的类似的行为——特别是执行时间为 0 秒的函数失败,以及一种 "Unknown".
虽然今天我已经联系了 Google 脚本支持,但我还没有找到原因,看看他们是否可以阐明它。
不过,我 发现的是一种解决方法。当我没有更改代码中的任何内容时,我的脚本开始了这种奇怪的行为。然而,我已经 完成的是启用 V8 运行时。如果我将它切换回旧的 ES5 "Rhino" 运行时,一切都会像以前一样工作。
See this page for info on how to do that,试试吧。我仍在梳理我的脚本以找出任何列出的不兼容问题,但没有找到任何问题,但至少我的用户现在可以在我搜索时继续使用该脚本!
使用 Rhino 运行时时,类型为 "Unknown" 的执行恢复到它们以前的值,似乎都是 "Web App"。
我有一份 Google 表格,供现场工作人员填写并提交。附件 javascript 将表格内容作为电子邮件发送给办公室的每个人。
执行时间超长。其中一个报告了 19496 秒,此时 Gsuite 应该会在 5 分钟后自动终止任何脚本。有些在 Google 应用程序脚本执行日志中具有 "Unknown" 状态和 0 秒。
Gsuite 配额用完了吗?我的脚本有错误吗?
用户 运行 脚本触发器也收到退回电子邮件,即使所有电子邮件都在处理,并且 Google sheet 正在接收来自 Google 表格正常。
我尝试在顶部添加 "if(e.values && !e.values[1]){return;}",在底部添加 "return;"。它似乎并没有改变这个问题。
我编辑了下面的 google 应用程序脚本以删除电子邮件地址的真实列表,并缩短了报告。 Google 表格的目的是提供他们日常工作的真实摘要,而不仅仅是在电子邮件中 "Job is done"。因此,他们填写了 15 个问题的列表。
function myFunction(e){
// Set values for event "e" from Response form, each number being a column in the spreadsheet
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];
// Build subject and message for email that will be sent out
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>";
// Send email to chief, of what the chief submitted through the Response form
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";
}
// Send emails to all office staff:
var EmailList = "brian@email.com," + chiefemail;
MailApp.sendEmail({
to: EmailList,
subject: subject1,
htmlBody: message_html,
name: chiefname,
replyTo: chiefemail
});
}
我希望脚本终止,我不想收到退回邮件。求助!
我认为您可能遇到了我所说的虚假 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
});
}
}
您阅读更多相关内容
最近我也开始出现这种情况。
根据执行记录,我的 goGet 和 goPost 执行似乎是 运行 无限,即使服务器 returns 响应相当快。
我注意到只有当我 运行 doGet 和 doPost 作为匿名用户在隐私浏览模式下时才会发生。如果我已登录,则执行记录会针对该特定请求正常运行。
我维护了一个相当大的 Google Apps 脚本,在过去 1.5 年中使用率很高。我的脚本最近才开始出现这种情况。令人震惊的是,您的 SO post 也是相当新的。
将脚本复制到新脚本可暂时解决此问题,但最终新脚本也会出现此问题。一旦新脚本开始显示这些症状,代码的某些部分(特别是以编程方式打开和阅读 Google 表格)就会停止正常工作并开始出现故障。所以,我认为这个问题不仅仅是执行记录中的一个视觉问题,它也会对该脚本中我的其他代码的实际行为产生负面影响。
我有一个 Google 附加脚本,它可以正常工作几个月,并且最近出现了一些与所描述的类似的行为——特别是执行时间为 0 秒的函数失败,以及一种 "Unknown".
虽然今天我已经联系了 Google 脚本支持,但我还没有找到原因,看看他们是否可以阐明它。
不过,我 发现的是一种解决方法。当我没有更改代码中的任何内容时,我的脚本开始了这种奇怪的行为。然而,我已经 完成的是启用 V8 运行时。如果我将它切换回旧的 ES5 "Rhino" 运行时,一切都会像以前一样工作。
See this page for info on how to do that,试试吧。我仍在梳理我的脚本以找出任何列出的不兼容问题,但没有找到任何问题,但至少我的用户现在可以在我搜索时继续使用该脚本!
使用 Rhino 运行时时,类型为 "Unknown" 的执行恢复到它们以前的值,似乎都是 "Web App"。