У меня есть скрипт Google Sheets Script (несколько на самом деле), который всегда работал хорошо ... Выполнение всего за несколько секунд.Теперь каждый из них занимает минуты!
Я запускаю эти сценарии с кнопок изображений на одной из вкладок, примерно 2 раза в месяц, потому что они связаны с оплатой / выставлением счетов.
В последний раз, когда я запускал его(около 2 недель назад), я заметил, что это ужасно медленно, и поэтому я решил уйти от компьютера и вернуться позже.Когда я вернулся, сценарий завершен.
Думая, что это случайность, потому что сценарий не изменился, я подумал, что произошел интернет-провал или что-то в этом роде.Поэтому я попробовал сценарий снова, и он запустился всего за несколько секунд.
Теперь, через 2 недели, и я запускаю сценарий, и КАЖДЫЙ сценарий занимает на порядок больше, если не больше.
Я посмотрел на стенограммы выполнения и не нашел никаких ошибок, а только ДЛИННЫЕ периоды времени.Помните, что на каждом листе, где я получаю диапазон, есть только 39 строк!
Я проверил, что версия браузера Chrome обновлена.
Я обновил и перезагрузил.
Код:
function grabTotals() {
var ss = SpreadsheetApp.getActiveSpreadsheet(),
temp = ss.getSheetByName('TEMPLATE'),
j = 0, // set for rows to populate amounts
sumTotal = 0, //adding up for TOTAL on report
all = ss.getSheetByName('BILLING_DASHBOARD'),
sheets = ss.getSheets(),
vals = all.getRange('d6:j').getValues(); // (WAS d5) Must set row before what is needed or it misses last counted down item
ss.getSheetByName("SummaryTotals").activate().getRange("B2:C100").clearContent();
for (var i = vals.length-1; i > 0; i--) {
var name = vals[i][6]; //make array of the names from column
if (name !='') {
//Set up here an IF for checking vals[i][1] or [0] for the TRUE checkmark
var isOn = vals[i][0]; // check for checkbox
if (isOn) {
var theActiveSheet = ss.getSheetByName(name);
if (theActiveSheet !=null) {
Logger.log(theActiveSheet &"---"& theActiveSheet.getName());
var theAmounts = theActiveSheet.getRange("I13").getValues(); //Get the Total for check on named sheet
if( theAmounts > 0) {//Zeros are not shown on summary or totaled
ss.getSheetByName("SummaryTotals").getRange(3+j, 3).setValue(theAmounts); //Write amount from named sheet to the Summary sheet
ss.getSheetByName("SummaryTotals").getRange(3+j, 2).setValue(vals[i][1]); //Write the NAME on the sheet to the Summary sheet
Logger.log(theActiveSheet &"|||"& theActiveSheet.getName() &"|||"& theAmounts & "|||"& vals[i][1]);
ss.getSheetByName("SummaryTotals").insertRows(4+j, 1); //insert a row (May not be necessary)
sumTotal = parseFloat(sumTotal) + parseFloat(theAmounts); //Keep a running balance for the Total on the Summary Sheet... done below
j++;
}
}
}
}
}
multiSortColumns(); // UNCOMMENT for sorting.
ss.getSheetByName("SummaryTotals").getRange(4+j, 2).setValue("Total");
ss.getSheetByName("SummaryTotals").getRange(4+j, 3).setValue(sumTotal);
}
Стенограмма выполнения
[19-05-15 15:23:11:903 PDT] Starting execution
[19-05-15 15:23:11:917 PDT] SpreadsheetApp.getActiveSheet() [0 seconds]
[19-05-15 15:23:12:194 PDT] Sheet.protect() [0.276 seconds]
[19-05-15 15:23:22:627 PDT] Protection.setDescription([Sample protected sheet]) [10.432 seconds]
[19-05-15 15:23:22:628 PDT] Session.getEffectiveUser() [0 seconds]
[19-05-15 15:23:22:629 PDT] User.getEmail() [0 seconds]
[19-05-15 15:23:32:743 PDT] Protection.addEditor([jgarner@usmpllc.com]) [10.114 seconds]
[19-05-15 15:23:32:744 PDT] Protection.getEditors() [0 seconds]
[19-05-15 15:23:43:122 PDT] Protection.removeEditors([[jgarner@usmpllc.com]]) [10.378 seconds]
[19-05-15 15:23:43:123 PDT] Protection.canDomainEdit() [0 seconds]
[19-05-15 15:23:43:124 PDT] SpreadsheetApp.getActiveSpreadsheet() [0 seconds]
[19-05-15 15:23:43:125 PDT] Spreadsheet.getSheetByName([TEMPLATE]) [0 seconds]
[19-05-15 15:23:43:125 PDT] Spreadsheet.getSheetByName([BILLING_DASHBOARD]) [0 seconds]
[19-05-15 15:23:43:131 PDT] Spreadsheet.getSheets() [0.006 seconds]
[19-05-15 15:23:43:132 PDT] Sheet.getRange([d6:j]) [0 seconds]
[19-05-15 15:23:53:561 PDT] Range.getValues() [10.428 seconds]
[19-05-15 15:23:53:562 PDT] Spreadsheet.getSheetByName([SummaryTotals]) [0 seconds]
[19-05-15 15:23:53:562 PDT] Sheet.activate() [0 seconds]
[19-05-15 15:23:53:563 PDT] Sheet.getRange([B2:C100]) [0 seconds]
[19-05-15 15:23:53:564 PDT] Range.clearContent() [0 seconds]
[19-05-15 15:23:53:564 PDT] Spreadsheet.getSheetByName([jgaul]) [0 seconds]
[19-05-15 15:23:53:564 PDT] Sheet.getName() [0 seconds]
[19-05-15 15:23:53:565 PDT] Logger.log([0.0, []]) [0 seconds]
[19-05-15 15:23:53:566 PDT] Sheet.getRange([I13]) [0 seconds]
[19-05-15 15:24:14:130 PDT] Range.getValues() [20.564 seconds]
[19-05-15 15:24:14:131 PDT] Spreadsheet.getSheetByName([SummaryTotals]) [0 seconds]
[19-05-15 15:24:14:132 PDT] Sheet.getRange([3, 3]) [0 seconds]
[19-05-15 15:24:14:133 PDT] Range.setValue([[[4200.0]]]) [0 seconds]
[19-05-15 15:24:14:133 PDT] Spreadsheet.getSheetByName([SummaryTotals]) [0 seconds]
[19-05-15 15:24:14:134 PDT] Sheet.getRange([3, 2]) [0 seconds]
[19-05-15 15:24:14:134 PDT] Range.setValue([Jay Gaul]) [0 seconds]
[19-05-15 15:24:14:134 PDT] Sheet.getName() [0 seconds]
[19-05-15 15:24:14:135 PDT] Logger.log([0.0, []]) [0 seconds]
[19-05-15 15:24:14:135 PDT] Spreadsheet.getSheetByName([SummaryTotals]) [0 seconds]
[19-05-15 15:24:24:375 PDT] Sheet.insertRows([4, 1]) [10.239 seconds]
[19-05-15 15:24:24:479 PDT] Spreadsheet.getSheetByName([jgarner]) [0.103 seconds]
[19-05-15 15:24:24:480 PDT] Sheet.getName() [0 seconds]
[19-05-15 15:24:24:480 PDT] Logger.log([0.0, []]) [0 seconds]
[19-05-15 15:24:24:481 PDT] Sheet.getRange([I13]) [0 seconds]
[19-05-15 15:24:34:489 PDT] Range.getValues() [10.007 seconds]
[19-05-15 15:24:34:489 PDT] Spreadsheet.getSheetByName([SummaryTotals]) [0 seconds]
[19-05-15 15:24:34:490 PDT] Sheet.getRange([4, 3]) [0 seconds]
[19-05-15 15:24:34:490 PDT] Range.setValue([[[3850.0]]]) [0 seconds]
[19-05-15 15:24:34:491 PDT] Spreadsheet.getSheetByName([SummaryTotals]) [0 seconds]
[19-05-15 15:24:34:491 PDT] Sheet.getRange([4, 2]) [0 seconds]
[19-05-15 15:24:34:492 PDT] Range.setValue([Jim Garner]) [0 seconds]
[19-05-15 15:24:34:505 PDT] Sheet.getName() [0 seconds]
[19-05-15 15:24:34:506 PDT] Logger.log([0.0, []]) [0 seconds]
[19-05-15 15:24:34:507 PDT] Spreadsheet.getSheetByName([SummaryTotals]) [0 seconds]
[19-05-15 15:24:44:758 PDT] Sheet.insertRows([5, 1]) [10.25 seconds]
[19-05-15 15:24:44:862 PDT] Spreadsheet.getSheetByName([gimes]) [0.103 seconds]
[19-05-15 15:24:44:862 PDT] Sheet.getName() [0 seconds]
[19-05-15 15:24:44:863 PDT] Logger.log([0.0, []]) [0 seconds]
[19-05-15 15:24:44:863 PDT] Sheet.getRange([I13]) [0 seconds]
[19-05-15 15:24:54:868 PDT] Range.getValues() [10.004 seconds]
[19-05-15 15:24:54:869 PDT] Spreadsheet.getSheetByName([SummaryTotals]) [0 seconds]
[19-05-15 15:24:54:869 PDT] Sheet.getRange([5, 3]) [0 seconds]
[19-05-15 15:24:54:870 PDT] Range.setValue([[[3456.6]]]) [0 seconds]
[19-05-15 15:24:54:870 PDT] Spreadsheet.getSheetByName([SummaryTotals]) [0 seconds]
[19-05-15 15:24:54:870 PDT] Sheet.getRange([5, 2]) [0 seconds]
[19-05-15 15:24:54:871 PDT] Range.setValue([Grant Imes]) [0 seconds]
[19-05-15 15:24:54:871 PDT] Sheet.getName() [0 seconds]
[19-05-15 15:24:54:872 PDT] Logger.log([0.0, []]) [0 seconds]
[19-05-15 15:24:54:872 PDT] Spreadsheet.getSheetByName([SummaryTotals]) [0 seconds]
[19-05-15 15:25:05:595 PDT] Sheet.insertRows([6, 1]) [10.722 seconds]
[19-05-15 15:25:05:596 PDT] SpreadsheetApp.getActiveSpreadsheet() [0 seconds]
[19-05-15 15:25:05:696 PDT] Spreadsheet.getSheetByName([SummaryTotals]) [0.099 seconds]
[19-05-15 15:25:05:697 PDT] Sheet.getRange([B3:C]) [0 seconds]
[19-05-15 15:25:05:697 PDT] Range.sort([[{column=2.0, ascending=true}]]) [0 seconds]
[19-05-15 15:25:05:801 PDT] Spreadsheet.toast([Sort complete.]) [0.103 seconds]
[19-05-15 15:25:05:802 PDT] Spreadsheet.getSheetByName([SummaryTotals]) [0 seconds]
[19-05-15 15:25:05:803 PDT] Sheet.getRange([7, 2]) [0 seconds]
[19-05-15 15:25:05:803 PDT] Range.setValue([Total]) [0 seconds]
[19-05-15 15:25:05:804 PDT] Spreadsheet.getSheetByName([SummaryTotals]) [0 seconds]
[19-05-15 15:25:05:804 PDT] Sheet.getRange([7, 3]) [0 seconds]
[19-05-15 15:25:05:805 PDT] Range.setValue([11506.6]) [0 seconds]
[19-05-15 15:25:15:777 PDT] Execution succeeded [82.682 seconds total runtime]
Я не очень хороший сценарист, но обычно я делаю вещи довольно хорошо!Это, однако, за мной ... Как будто все сразу сломалось, и я задаюсь вопросом, произошло ли радикальное изменение от Google, о котором я не знал.** Я оплатил счет GSuite ?!
Пожалуйста, помогите мне найти проблему и постарайтесь устранить ее до следующего цикла выставления счетов!
Нет ошибок.Просто очень долгое исполнение, которое НИКОГДА не происходило раньше.