У меня есть сценарий, который должен выполняться каждый день в начале часа.
Я установил автоматические триггеры времени, которые запускают сценарий проверки каждые 10 минут, чтобы увидеть, будет ли 10 минут до следующего часа,Сценарий отправляет текст и электронное письмо в наш список, и это работает (хотя выполнение занимает 5-20 минут).
Проблема заключается в том, что люди получают двойной текст и электронные письма.
Я подозреваю, что причина в том, что скрипт проверки устанавливает свойство скрипта, но на самом деле это не так. получить набор до завершения сценария (аналогично написанию ячеек). Если выполнение сценария занимает более 10 минут, сценарий снова запустится без нового свойства и приведет к его двойному запуску. Мой вопрос: «происходит ли setProperty () мгновенно или происходит в конце сценария»?
Если это происходит мгновенно, то мне нужно найти другую причину сценарияКажется, выговаривать каждого дважды. Вот мой скрипт проверки для справки. Обратите внимание, что когда я выполняю функцию sendComs (time) вручную, без триггеров времени, она выполняется только один раз. Таким образом, кажется, что проблема ниже чего-то.
function sendDaily () {
var today = new Date();
var hours = today.getHours();
var mins = today.getMinutes();
var scriptProperties = PropertiesService.getScriptProperties();
var timeLastTriggered = scriptProperties.getProperty('LastTime');
switch (timeLastTriggered) {
case '0':
if (hours >= 4 && mins >= 50 || hours >= 5) {
scriptProperties.setProperties({'LastTime':'5'})
sendComs('5:00 AM');
}
break;
case '5':
if (hours >= 5 && mins >= 50 || hours >= 6) {
scriptProperties.setProperties({'LastTime':'6'});
sendComs('6:00 AM');
}
break;
case '6':
if (hours >= 6 && mins >= 50 || hours >= 7) {
scriptProperties.setProperties({'LastTime':'7'});
sendComs('7:00 AM');
}
break;
case '7':
if (hours >= 7 && mins >= 30 || hours >= 8) {
scriptProperties.setProperties({'LastTime':'7.5'});
sendComs('7:30 AM');
}
break;
case '7.5':
if (hours >= 7 && mins >= 30 || hours >= 8) {
scriptProperties.setProperties({'LastTime':'7.6'});
sendComs('7:40 AM');
}
break;
case '7.6':
if (hours >= 7 && mins >= 30 || hours >= 8) {
scriptProperties.setProperties({'LastTime':'7.7'});
sendComs('7:50 AM');
}
break;
case '7.7':
if (hours >= 7 && mins >= 30 || hours >= 8) {
scriptProperties.setProperties({'LastTime':'7.8'});
sendComs('7:55 AM');
}
break;
case '7.8':
if (hours >= 7 && mins >= 30 || hours >= 8) {
scriptProperties.setProperties({'LastTime':'8'});
sendComs('8:00 AM');
}
break;
case '8':
if (hours >= 8 && mins >= 50 || hours >= 9) {
scriptProperties.setProperties({'LastTime':'9'});
sendComs('9:00 AM');
}
break;
case '9':
if (hours >= 11 && mins >= 50 || hours >= 12) {
scriptProperties.setProperties({'LastTime':'12'});
sendComs('12:00 PM');
}
break;
case '12':
if (hours >= 14 && mins >= 50 || hours >= 15) {
scriptProperties.setProperties({'LastTime':'15'});
sendComs('3:00 PM');
}
break;
case '15':
if (hours >= 17 && mins >= 50 || hours >= 18) {
scriptProperties.setProperties({'LastTime':'18'});
sendComs('6:00 PM');
}
break;
case '18':
if (hours >= 20 && mins >= 50 || hours >= 21) {
scriptProperties.setProperties({'LastTime':'21'});
sendComs('9:00 PM');
}
break;
case '21':
if (hours >= 23 && mins >= 50 || hours < 5) {
scriptProperties.setProperties({'LastTime':'0'});
sendComs('12:00 AM');
}
break;
}
}