这个剧本工作了将近一年。两个触发器都是“On Form Submit”。 大约一周前,这两个功能开始重复:两个相同的电子邮件,两个相同的日历事件。我在这里经历了很多帖子。我无法弄清楚如何摆脱这个问题。我不是程序员,下面的代码来自不同的来源。最近添加了LockService但没有成功。 任何人都可以解释代码有什么问题吗? 谢谢。
function BOOKemail(email, subject, message, options)
{
var lock = LockService.getPublicLock();
var success = lock.tryLock(5000);
if (!success) {
Logger.log('tryLock failed to get the lock');
return
}
var email = "abc@abc.org"
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var lr = rows.getLastRow();
var subject = "Request: "+sheet.getRange(lr,2).getValue()+" "+sheet.getRange(lr,1).getValue();
var message = "Issue: "+sheet.getRange(lr,3).getValue()+" "+"Employee name: "+sheet.getRange(lr,4).getValue();
var options = {name:"ABC"};
MailApp.sendEmail(email, subject, message);
lock.releaseLock();
}
function createEvent(title, date, desc)
{
var lock = LockService.getPublicLock();
var success = lock.tryLock(5000);
if (!success) {
Logger.log('tryLock failed to get the lock');
return
}
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var lr = rows.getLastRow();
var title = sheet.getRange(lr,1).getValue()+" "+"Request: "+sheet.getRange(lr,2).getValue()+" "+"Issue: "+sheet.getRange(lr,3).getValue()+" [F]";
var desc = "Issue: "+sheet.getRange(lr,3).getValue()+" "+"Employee name: "+sheet.getRange(lr,4).getValue();
var cal = CalendarApp.getCalendarsByName('ABC') [0];
var date = new Date();
var event = cal.createAllDayEvent(title, date, {description : desc});
lock.releaseLock();
};
答案 0 :(得分:1)
这实际上是Google底层问题,您的代码很好。
请在此处查看问题:http://code.google.com/p/google-apps-script-issues/issues/detail?id=4752
我遇到了与我为客户开发的脚本相同的问题,但在最近30分钟内,重复的问题似乎已经停止发生。所以我希望谷歌现在已经解决了潜在的问题。