datetime - 类 ClockTriggerBuilder : Specific Date and Time (only once) Trigger in Google Sheet Script keeps repeatedly executing every minute

标签 datetime google-apps-script google-sheets

以下脚本和触发器在第一个实例中按预期运行。但随后它并没有停止!此后触发器每分钟继续执行一次!

我只需要它按照编程运行一次,就是这样! 如何在第一次预期执行后停止执行触发器? 任何帮助将不胜感激! PS:这是我第一次尝试编写 Google Sheet 脚本,所以请让答案简单易懂!

function sendWAnow(){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet1=ss.getSheetByName('Reports');
var Date = sheet1.getRange(3,3).getValue();  
var subject = sheet1.getRange(4,3).getValue();
var emailAddress = sheet1.getRange(5,3).getValue();
var message = sheet1.getRange(6,3).getValue();
ScriptApp.newTrigger('sendWAnow')
           .timeBased()
           .at(Date)
           .create();  
MailApp.sendEmail(emailAddress, subject, message);
}

最佳答案

说明:

您的代码作为触发器的无限循环运行。第一次执行 sendWAnow() 时,它将创建一个触发器,该触发器将执行 sendWAnow(),然后再次创建一个新触发器。


解决方案:

您应该拆分这两个函数,一个函数应该为另一个函数创建触发器。

仅执行createTrigger():

function createTrigger(){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet1=ss.getSheetByName('Reports');
var Date = sheet1.getRange(3,3).getValue(); 
ScriptApp.newTrigger('sendWAnow')
           .timeBased()
           .at(Date)
           .create();
}

这将在特定时间触发 sendWAnow()

function sendWAnow(){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet1=ss.getSheetByName('Reports');
var Date = sheet1.getRange(3,3).getValue();  
var subject = sheet1.getRange(4,3).getValue();
var emailAddress = sheet1.getRange(5,3).getValue();
var message = sheet1.getRange(6,3).getValue();

MailApp.sendEmail(emailAddress, subject, message);
}

关于datetime - 类 ClockTriggerBuilder : Specific Date and Time (only once) Trigger in Google Sheet Script keeps repeatedly executing every minute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63918112/

相关文章:

datetime - 处理日期/时间和时区的奇怪时间偏移

javascript - 从网站上抓取表格,使用 javascript :subOpen href link

google-apps-script - Google Apps 脚本和 Bigquery - tabledata.insertAll

google-sheets - 如何根据 Google 表格中的 =Today() 突出显示包含行中工作日名称的单元格

datetime - FFMpeg - 在像监控一样的录制过程中打印日期和时间

PHP DateTime 解析时间而不是日期

c# - 在 C# 中验证不同的日期格式

python - 优化资源提升数据 python

javascript - appendRow 返回 [Ljava.lang.Object;@ 而不是值

python - 如何在 sqlalchemy 关系中使用日期(时间)算法?