我有这个脚本运行非常缓慢,并且总是在其 15 小步舞触发时超时。它基本上是 Google 用于在门户网站 (https://developers.google.com/apps-script/articles/embedding_docslist_in_sites) 中显示驱动器文件夹内容的示例脚本,但在开头有一点,以便它只在办公时间真正运行,如果有新文件,它会发送电子邮件。驱动器中最多只有 10-15 个文件,因此不应花费太长时间。
我这样做是因为我们的传真机将收到的传真保存到服务器上的文件夹中,然后我将其与 Google 驱动器同步,我想在组织内共享它并发送警报电子邮件。
我输入了一些记录器条目,显示每个循环结束时的时间,它从每个循环 30 秒到 2-3 分钟不等。有任何想法吗
function officeHours(){
var nowH=new Date().getHours();
var nowD=new Date().getDay();
if(nowH>18||nowH<8||nowD==6||nowD==0){return}{
var done = false;
var emaillist = "chris@ringtail.co.uk";
var myDate=new Date();
myDate.setMinutes(myDate.getMinutes()-15);
while(!done){
try{
var files = DocsList.getFolderById("0Byg20FZrPmcHUUhlOGVrZlRuM28").getFiles();
var page = SitesApp.getPageByUrl("https://sites.google.com/a/ringtail.co.uk/portal/fax-list");
var listItems = page.getListItems();
for(a in listItems){
listItems[a].deleteListItem();
}
for(i in files){
var title = "<a href=\'"+files[i].getUrl()+"\'>"+ files[i].getName() +"</a>";
var lastUpdatedinctime = files[i].getLastUpdated();
if (lastUpdatedinctime > myDate){
MailApp.sendEmail(emaillist, "New Fax", "",{htmlBody:"<br/><br/>A new fax has arrived<br/><br/><a href='"+files[i].getUrl()+"'>Click to view</a><br/><br/><a href='https://sites.google.com/a/ringtail.co.uk/portal/fax-list'>Click to see full fax list"});
}
page.addListItem([title, files[i].getType(), Utilities.formatDate(files[i].getLastUpdated(), "GMT", "yyyy-MM-dd")]);
}
done = true;
}
catch(e){
}
}
}
}