vladd56
@vladd56
Пенсионер

Как создать триггер для запуска программы в назначенное время?

Как создать триггер для запуска программы в назначенное время?
Я хочу получать информацию о накладных с Нова Пошта допустим в 21.00 ежедневно. Могу ли я написать такой триггер, чтобы он запускал программу по проверке накладных даже когда моя таблица у меня не загружена? Или же такое не реально?
  • Вопрос задан
  • 1567 просмотров
Решения вопроса 2
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Чтобы не терять триггерное время, а оно очень лимитировано для обычных аккаунтов, лучше всего использовать самовоспроизводящийся триггер

/**
 *
 */
function runOnce() {
  trigger_();
}

/**
 *
 */
function trigger_() {
  try {
    triggerAction();
  } catch (error) {
    console.error(error.message, error);
  } finally {
    var hours = 10;
    var minutes = 17;
    var seconds = 56;
    var now = new Date();
    var nextTime = new Date();
    nextTime.setHours(0, 0, 24 * 3600 + hours * 3600 + minutes * 60 + seconds);
    var delta = nextTime.getTime() - now.getTime();
    ScriptApp.newTrigger('trigger_')
      .timeBased()
      .after(delta)
      .create();
  }
}

/**
 *
 */
function triggerAction() {
  console.log("I'm fine");
}


triggerAction - это то, что выполняет ваш скрипт
runOnce - это то, что вы должны запустить один раз при первом запуске вашего триггера. Другие настройки не требуются
trigger_ - это и триггер и конфигурация вашего триггера

Такой триггер выполняется с высокой степенью точности, погрешность часто составляет меньше половины секунды.
Ответ написан
Комментировать
ProgrammerForever
@ProgrammerForever Куратор тега Google Apps Script
Учитель, автоэлектрик, программист, музыкант
1) Создайте поминутный триггер.
2) Внутри функции делайте проверку на время.
const time    = new Date();
const hours   = time.getHours();
const minutes = time.getMinutes();
if ((hours!=21)&&(minutes!=0)){return;};

Могу ли я написать такой триггер, чтобы он запускал программу по проверке накладных даже когда моя таблица у меня не загружена?

Функция запускается сама, таблицу держать открытой не надо.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы