允许在Google App脚本中链接时间触发器,如下所示:
function doGet(e){ //first invocation by user, HTTP GET
if (e == null || e.parameters == null) {
return ContentService.createTextOutput("EMPTY");
}
saveGetParametersForUser(Session.getUser().getEmail(), e);
//trigger 10 seconds
var timeTrigger = ScriptApp.newTrigger("timeDrivenEvent").timeBased().after(10 * 1000).create();
}
function timeDrivenEvent() { //runs until there are some data in ScriptDB
Logger.log("INVOKED AT " + new Date());
removeAllPreviousTriggers(); //removes old time triggers
var somedata = loadTaskData({email: "" + Session.getUser().getEmail()});
var remainingData = processTaskData(somedata);
if(remainingData == null){
return; //we are finished here
}
removePreviousAndSaveRemainingTaskData(remainingData);
var timeTrigger = ScriptApp.newTrigger("timeDrivenEvent").timeBased().after(10 * 1000).create();
}
我发现有时脚本中断且数据未完全处理会发生什么变化!我没有收到任何电子邮件提醒,日志或执行记录中没有任何内容 - 一切都很好。
我开始认为启动脚本方法可能要快10秒,但毕竟它在API中...
有什么想法吗? 这是唯一可行的解决方案如何将大任务分成小块,因为Google App Script无法运行超过5-6分钟(参见配额)。
答案 0 :(得分:0)
根据评论中的建议,有一个周期性时间触发器运行良好。
我只是想知道为什么时间触发链接效果不好!我做了什么原则打破了谷歌应用程序脚本不喜欢这样的原因。
文档:https://developers.google.com/apps-script/class_clocktriggerbuilder
方法everyMinutes设置要在传递的分钟数间隔内触发的触发器,该分钟数必须是1,5,10,15或30之一。