Google apps script 为特定定期窗口安排Google应用程序脚本功能
我正在尝试安排应用程序脚本功能。我需要这封邮件从上午11点到晚上9点每2小时触发一次Mon-Sat 我编写了以下代码来为每天创建触发器:Google apps script 为特定定期窗口安排Google应用程序脚本功能,google-apps-script,crontrigger,Google Apps Script,Crontrigger,我正在尝试安排应用程序脚本功能。我需要这封邮件从上午11点到晚上9点每2小时触发一次Mon-Sat 我编写了以下代码来为每天创建触发器: function createTriggers() { var days = [ScriptApp.WeekDay.MONDAY, ScriptApp.WeekDay.TUESDAY, ScriptApp.WeekDay.WEDNESDAY, ScriptApp.We
function createTriggers() {
var days = [ScriptApp.WeekDay.MONDAY,
ScriptApp.WeekDay.TUESDAY,
ScriptApp.WeekDay.WEDNESDAY,
ScriptApp.WeekDay.THURSDAY,
ScriptApp.WeekDay.FRIDAY,
ScriptApp.WeekDay.SATURDAY];
for (var i=0; i<days.length; i++) {
ScriptApp.newTrigger('emailDashboard')
.timeBased().onWeekDay(days[i])
.everyWeeks(1).everyHours(2).create();
}
}
函数createTriggers(){
var days=[ScriptApp.WeekDay.MONDAY,
ScriptApp.WeekDay.周二,
ScriptApp.WeekDay.周三,
ScriptApp.WeekDay.周四,
ScriptApp.WeekDay.FRIDAY,
ScriptApp.WeekDay.SATURDAY];
对于(var i=0;i您的问题来自于过度的特殊性。您使用的许多选项,如工作日的和每周的都是相互排斥的。您可以在其上阅读有关该类的更多信息
一种更简单的方法是安排所需的粒度:
ScriptApp.newTrigger("myFunction").timeBased().everyHours(2).create();
然后检查当前时间是否符合您的条件:
今天不是星期天
当地时间上午11点以上
当地时间晚上9点以下一小时
值得注意的是,当您使用小时级别的特定性时,Google将以其选择的分钟值运行您的函数
与其他触发功能一样,有一个可用的
假设您只关心UTC值(事件对象中所有值的区域设置)的示例鉴别器:
函数getsCalledByClockTrigger(e){
如果(!e)抛出新错误(“从脚本编辑器调用”);
else console.log(e);//在Stackdriver日志中显示此事件对象。
//检查是否不是UTC星期日。
如果(e[“星期几”]==7)
返回;
//检查UTC小时是在上午11点到晚上9点之间。
如果(电时<11 | |电时>21)
返回;
/*做事*/
}
使用var now=new Date()
并检查各种属性(例如)来识别非UTC值可能是最简单的。您所拥有的有什么问题?您的问题是什么?当我运行上面的内容时,我得到以下错误:“时钟触发器的重复间隔已经设置好了。(第79行,文件“code”)”我找不到关于该回复的任何信息,它实际上不会触发电子邮件发送。我想我上面的内容会让我每2小时收到一封周一至周六的电子邮件。我不知道如何从上午11点开始到晚上9点结束。谢谢!我在这里找到了另一个问题的片段[@S1ick1我还添加了一些示例代码
function getsCalledByClockTrigger(e) {
if(!e) throw new Error("Called from the Script Editor");
else console.log(e); // Show this event object in Stackdriver logs.
// Check that it isn't UTC Sunday.
if(e["day-of-week"] === 7)
return;
// Checking the UTC hour is between 11 AM and 9 PM.
if(e.hour < 11 || e.hour > 21)
return;
/* Do stuff */
}