Скрипт Google Apps для остановки триггера в определенные дни - PullRequest
0 голосов
/ 13 марта 2019

У меня есть функция скрипта, и я создал триггер для запуска каждый час

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

Я нашел функцию, чтобы остановить ее по дням

//Skip week-end
var day = new Date();
if (day.getDay()>5 || day.getDay()==0) {
  return;
}

, но я не знаю, как сделать это более конкретно с пятницы 17:00 до субботы 22:00, чтобы не запускать ее.

любая помощь, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 13 марта 2019

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

function shouldRunTrigger() {
  var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
  var date = new Date();
  var day = days[date.getDay()];
  var hours = date.getHours();
  if ((day === "Fri" && hours >= 17) || (day === "Sat" && hours <= 22)) {
    return false;
  }
  return true;
}

function myTrigger() {
  if (!shouldRunTrigger()) return;
  // trigger code here
}
1 голос
/ 13 марта 2019

Я думаю, что есть самый простой способ пропустить текущее выполнение без повторного создания триггера.

Предположим, дни сотни:

  • Пятница 500
  • Суббота - 600

Предположим, что часы - это десятки и единицы:

  • 01: 00 - 1
  • 17: 00 - 17
  • 22: 00 - 22

Затем мы должны сделать паузу от 500 + 17 до 600 + 22.

function shouldRunTrigger() {
  var now = new Date();
  var k = now.getDay() * 100 + now.getHours() + now.getMinutes()/100;
  return !(k >= 517 && k < 622);
}

function myTrigger() {
  if (!shouldRunTrigger()) return; // If true then skip it
  // trigger code here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...