Почему мой «предел превышен» для некоторых моих сценариев Служб Google, использующих триггеры, основанные на времени? - PullRequest
1 голос
/ 05 июня 2019

Мне кажется, что я сталкиваюсь с каким-то неопределенным лимитом в моей учетной записи G Suite при использовании сценариев Google Apps, но я не уверен, что такое лимит и / или как мне настроить свой рабочий процесс.

У меня есть учетная запись G Suite Business.

В моем "Центре разработчиков G Suite Developer" у меня около 45 относительно простых проектов.

Каждый проект имеет только один маленький скрипт с одной функцией,с помощью триггера, основанного на времени, который запускается ежедневно между 2:00 и 3:00.

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

Вот шаблон для одного небольшого файла в каждом проекте с именем Code.gs.

var source_folder = DriveApp.getFolderById("xxxxxxxxsourceFolderIDxxxxxxxx")

var dest_folder = DriveApp.getFolderById("xxxxxxxxdestinationFolderIDxxxxxxxx")

function moveFiles() {

  var files = source_folder.getFiles();

  while (files.hasNext()) {

    var file = files.next();
    dest_folder.addFile(file);
    source_folder.removeFile(file);

  }
}

Большинство триггеров, кажется, работают простохорошо, но недавно я был уведомлен о сбоях триггера для двух из них:

Start | Function | Error Message | Trigger | End
6/5/19 2:43 AM | moveFiles | Limit Exceeded: Drive. (line 13, file "Code") | time-based | 6/5/19 2:43 AM

Строка 13 просто: source_folder.removeFile(file);

Почему это происходит, и как я могу убедиться, чтоЯ не страдаю этим ограничением?

1 Ответ

3 голосов
/ 05 июня 2019

Весьма вероятно, что ваши 45 триггеров выполняют слишком много операций в течение определенного периода времени.Есть много альтернатив,

  1. Вместо того, чтобы устанавливать все триггеры для одновременного запуска, распределите их каким-либо образом, скажем, установите 9 триггеров для запуска в 23:00, 9 триггеров в 12:00 и т. Д..
  2. Вместо использования 1 учетной записи для установки всех триггеров используйте несколько учетных записей.
  3. Вместо 45 сценариев создайте один «главный» сценарий.Возможно, вам следует добавить Utilities.sleep (миллисекунды) при каждой итерации папки / файла.Это какая-то тонкая настройка, которая будет зависеть от того, сколько файлов будет перемещено и как вы создадите свой главный скрипт.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...