我已经在谷歌市场上发布了一个附加组件,它安装,并手动执行所有任务,但我需要它能够使用时钟触发器,我已经设计在附加组件安装期间安装。触发器不适用于我的附加组件。下面是触发器函数
//creates a trigger for function: setUpdateGradebookTrigger()
function setUpdateGradebookTrigger() {
ScriptApp.newTrigger('updateGradebookOnTriggers')
.timeBased()
.everyMinutes(5)
.create();
}
// function: setUpdateGradebookTrigger()
function updateGradebookOnTriggers() {
// add new courses to the gradebook
addNewCoursesToGradebook()
if (!inTestFolder()) {
Logger.log('Tests are Not in exams folder');
updateTestScores(); // Runtime 3 min, 08 sec
} else {
Logger.log('Tests are in exams folder')
}
var date = getLocalTime();
var minute = date.getMinutes();
var day = date.getDay();
var hour = date.getHours();
if (day == 6 && hour == 0 && minute < 5) {
// save date as values
saveDataAsValues(); // Runtime: 14 seconds
} else {
if (hour == 1) {
if (minute < 5) {
createAllProgressReportTemplates(); // Runtime: 0 min, 34 secs
} else if (minute < 10) {
setAllFormulas();
} else if (minute < 15) {
updateSharedSpreadsheets();
}
} else if (minute < 5) {
updateNextCourse(); // Runtime: 2 min, 04 sec (29 students)
}
}
// update recent test scores and worksheet grades
updateTestsAndWorksheets(); // Runtime: 2 min, 02 sec
setAllFormulas();
}
// get local time
function getLocalTime() {
var ss = SpreadsheetApp.getActive();
var local_time = ss.getSpreadsheetTimeZone();
var now = new Date();
var local_date = Utilities.formatDate(now, local_time, 'MMMM dd, yyyy HH:mm:ss');
return local_date;
}
谢谢。我解决了这个问题:我试图安装每五分钟运行一次的运行触发器。在Google Marketplace上发布的Google插件触发器运行时间为61分钟(每小时)。当我将它们更改为。everyhours(2)时,它们安装并运行良好。