Новая версия 1.3
Убрал зависимость от модуля "Строка"В режиме компиляции не работало, если в проекте не было действий этого модуля.
@Shogo Кстати максимальное количество символов в одной ячейке Google таблицы - 50000 символов. Поэтому, если модуль попробует записать одну ячейку более чем 50к симв, то google ему это не даст сделать. Было бы неплохо это как-то учесть в модуле
@Shogo В любом случае записать в одну ячейку более 50к символов через API нельзя — Google отклонит запрос. Думаю лучше это- модуль до отправки проверяет длину данных и, если >50 000, сразу возвращает ошибку или уведомление. Я ещё не тестировал ваш модуль но подозреваю что там при записи в ячейку выполняется полная перезапись ячейки, а не «дописыванием». поэтому если бы модуль выполнял дописывание то пришлось бы сначала читать текущее значение (например, 48 900 + 200 > 50 000), что делает лишние вызовы и расходует квоту.
@Shogo Если вы имеете в виду квоту ну как я сказал 50000 символов в одной ячейке может максимум храниться. Неважно как их пытаться записать руками, либо через апи , или либо через Google app script.
Можете сами попробовать записать в любую ячейку более 50000 символов это не получится сделать. Если если вы про другую какую-то квоту, то поясните какая имеется в виду квота.
@Shogo Кста, при работе с Google таблицами даже если ты всё верно по апи запрос отправил , то отвечает не-200 (и такое часто бывает я проверял так как работаю с Google таблицами давно по api)..типа пиковая нагрузка, параллельные запросы к одному документу, лимиты.
В модуль можно встроить простой метод повтора с Рандомные заранее заданный задержкой в модуле
Вот как можно типа параметры прям в модуле (типа поля сделать): maxRetries (например 3–5), baseDelayMs ( например 500–1000 ms ), maxDelayMs (например до 60000)
Типа повторяем только при ответах: 429, 500, 502, 503, 504, 408, 409.
понятно что обрабатывать ошибки можно отдельными кубиками которые есть в BAS, Ну я думаю что так будет удобнее.
Не повторяем при ответах 400, 401/403, 404
чат gpt говорит что такие лимиты есть:
Квоты Google Sheets API на бесплатном аккаунте (по официальной доке):
Лимиты считаются в минуту и пополняются каждую минуту.
• Чтение: до 300 запросов в минуту на проект и до 60 в минуту на пользователя.
• Запись: те же 300/60.
Google for Developers
Рекомендуют держать полезную нагрузку запроса до ~2 МБ, иначе начнутся внутренние ограничения обработчиков.
Google for Developers
Один запрос, который обрабатывается дольше 180 секунд, вернёт таймаут.
Google for Developers
Суточного лимита нет, если укладываетесь в поминутные квоты. При превышении вернётся 429
@Shogo было бы неплохо сделать автоматические повторы в случае например когда Google ругается на то что квота истекла , Особенно эту актуально когда несколько юзеров (экземпляры приватного скрипта) которым ты допустим раздал свой скрипт - долбят Google таблицу используя одни и те же данные авторизации ( json данные авторизации с одного Google аккаунта).
Кстати мне кажется лучше идея не путь к json-файлу, а просто копипастить содержимое json-файла , или чтоб у пользователя модуля был выбор, либо указать путь до файла, или вставить json строку (Содержимое этого файла)