Google Apps Script имеет лимиты выполнения. Если скрипт обрабатывает таблицу построчно, часто обращается к ячейкам или делает много внешних запросов, он быстро упирается в timeout.
Когда это становится проблемой
Часть строк обработалась, часть нет. Пользователь запускает скрипт повторно, появляются дубли, письма уходят не всем, а отчеты становятся ненадежными.
Что проверяю в первую очередь
- Сколько раз скрипт читает и пишет в таблицу
- Есть ли построчная обработка вместо batch-операций
- Внешние API-запросы и их таймауты
- Триггеры, расписание и параллельные запуски
- Хранение прогресса между запусками
Как исправляю
Я уменьшаю количество обращений к Spreadsheet API, обрабатываю данные массивами и делю длинную задачу на безопасные порции с сохранением прогресса.
- Перевожу чтение и запись на getValues/setValues
- Добавляю batch-обработку и продолжение с нужной строки
- Ставлю LockService, чтобы запуски не конфликтовали
- Оптимизирую внешние запросы и добавляю журнал ошибок
Что важно не сломать
Опасно просто запускать скрипт несколько раз вручную: можно получить дубли, повторные письма и поврежденные данные.
Что будет после исправления
- Скрипт укладывается в лимиты или корректно продолжает работу
- Данные не дублируются
- Ошибки видны в отдельном журнале
- Автоматизация работает по расписанию
Что подготовить перед обращением
- Ссылка на таблицу или копия структуры
- Код Apps Script
- Сколько строк обрабатывается
- Что должно быть результатом работы
Вопросы и ответы
Можно ли исправить без полной переделки?
Да, большинство Apps Script можно ускорить без смены платформы, если убрать построчную работу с ячейками.
Сколько времени занимает диагностика?
Небольшой скрипт оптимизируется быстро. Если есть внешние API и сложная логика, потребуется проверить несколько запусков.
Нужна похожая задача?
Напишите в Telegram @rabotator_support и коротко опишите проблему. Я посмотрю симптомы, предложу понятный план работ и скажу, какие доступы нужны для безопасного исправления.