У меня есть учетная запись corp, поэтому таймер для сбоя скрипта составляет много минут. Но у меня есть скрипт, который обращается к популярной электронной таблице, к которой обращаются многие люди (не знаю, сколько, это могут быть сотни, проверяющие ее в день и выполняющие свои собственные пользовательские функции, по крайней мере, 100 раз в день), и поэтому мой сценарий часто тайм-аут, не имея возможности получить данные с листа.
Когда он проходит, вызов никогда не занимает более 30 секунд. Я делаю один вызов, чтобы получить отображаемые значения с одного листа (который заполнен рассчитанными значениями).
Есть ли способ заставить скрипт завершиться через 30 секунд, если он не завершил этот вызов? Это не чтение за строкой или что-то еще, где вы могли бы прервать его в каждой строке.
Я пытался заставить его читать значения только из двух столбцов, которые мне нужны как два чтения, а не вытягивать пять столбцов за одно чтение, но это не имеет значения, я думаю, что это трафик, а не нагрузка вещь.
Текущий код:
var id = "xxx";
try{var data = SpreadsheetApp.openById(id).getSheetByName("Tracker 2019").getRange("A9:D").getDisplayValues();} catch(e){Logger.log(e); return;}
ss.getRange(1,1,data.length,data[0].length).setValues(data);
SpreadsheetApp.flush();
Я добавлю, что на самом деле это не ошибка, а тайм-аут, как правило (не вызывает оператор catch).