Сценарий Google Apps запускает выполнение слишком поздно - PullRequest
1 голос
/ 15 октября 2019

Я пытаюсь запустить выполнение функции примерно через 1 секунду, но Google выполняет функцию через 40 секунд или что-то около 2 минут.

Вот мой код


function testFunc () {
  Logger.log("test called");
}

function myFunction() {
  const now = Date.now();
  const dateNow = new Date(Date.now());
  const dateLater = new Date(now + 1000);

  const trigg = ScriptApp.newTrigger('testFunc')
    .timeBased()
    .inTimezone("Europe/Paris")
    // .at(dateLater) // 1sec
    .after(1000) // 1sec
    .create();
}

Я пробовал с функциями after и at, но оба не работают. Когда я смотрю на страницу выполнения, у меня есть эта история, показывающая время между выполнением myFunction и testFunc.

Head    testFunc    Time-Driven Oct 15, 2019, 2:06:35 PM    0.009 s 
Completed
Head    myFunction  Editor  Oct 15, 2019, 2:05:33 PM    0.589 s 
Completed
Head    testFunc    Time-Driven Oct 15, 2019, 2:04:15 PM    0.202 s 
Completed
Head    myFunction  Editor  Oct 15, 2019, 2:02:57 PM    0.46 s  
Completed

Документация по управляемым временем триггерам говорит, что

Время может быть слегка рандомизировано - например, если вы создаете повторяющийся триггер 9 утра, Apps Script выбирает время между 9 и 10 часами утра

И япытаюсь, чтобы мой триггер был запущен через несколько секунд (между 5 и 10), есть ли способ сделать это?

1 Ответ

1 голос
/ 15 октября 2019

Вы правы в отношении причины случайного времени , однако, нет способа заставить это быть неверным.

У вас есть несколько альтернатив:

  1. Подумайте, действительно ли вам нужно подождать, пока другая функция не будет вызвана. (если вы проверяете, сработала ли обработка данных в основной функции, вам не нужно ждать.)
  2. Используйте Utilities.sleep(), чтобы добавить задержку. Это может занять 6 минут, будьте осторожны.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...