【发布时间】:2021-09-22 15:53:17
【问题描述】:
我在 Google Marketplace 上发布了一个插件,它会安装并手动执行所有任务,但我需要它能够使用我设计的在插件安装期间安装的时钟触发器。触发器不适用于我的插件。 这里是触发函数
//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();
}
//获取当地时间
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;
}
【问题讨论】:
-
请修剪您的代码,以便更容易找到您的问题。请按照以下指南创建minimal reproducible example。
标签: google-sheets installation triggers spreadsheet script