Возможность подключить Google таблицу наполнила жизнь разработчика яркими красками - в таблицы можно заносить информацию, получать сформированные данные через слайдер и виртуозно работать с формулами во благо себе и своим клиентам.
И всё было бы замечательно, если не одно НО. Есть лимиты.
Бот обрабатывает только 60 запросов в минуту, а количество людей, желающих осуществить запрос, может быть гораздо больше
И в этот момент возникают трудности. К примеру, обработка не удалась из-за большого количества запросов, новая строка не создалась, подписчик не был внесён в базу знаний. Следовательно, все дальнейшие действия в таблице бот просто не обработает.
Как решить эту проблему? Увеличить лимиты. Максимально ваш проект может обрабатывать 200 запросов. Поэтому нужно подключить ещё 2 аккаунта. В итоге у вас получится 3 подключенных аккаунта.

❗️ ВАЖНО: Нужно обязательно дать доступ к той или тем таблицам, где существует повышенная нагрузка. Для этого создайте ссылку с возможностью редактирования и откройте её, находясь в каждом из аккаунтов.

На скриншоте один из аккаунтов, который просто имеет доступ к таблице, но не является ее автором. В каждом их дополнительных аккаунтов должны быть выданы такие доступы к тем таблицам, на которые планируется нагрузка

Вы можете сделать все сами, если заказчик “не дружит” с таблицами. Но лучше поручить ему, чтобы владельцем аккаунтов был он сам. Отправьте ему это видео, чтобы ему было легче разобраться. В первых 40 секундах инструкция для подключения. Или запишете такое видео самостоятельно по нашему образцу.
Частично этот вопрос может решить и другой способ — кеширование. Эта функция появилась не так давно, но уже позитивно используется в практике.

Как она работает? Разберем на примере.
Вы делаете рассылку поста на 200 пользователей, в котором есть интегрированная переменная, берущая значение из google таблиц. Без использования кэша на 61-ом пользователе переменная уже не сможет получить значение (если у вас подключена 1 таблица).
Кэширование сохраняет все данные из таблицы на выбранное время (120 секунд максимум). И дальнейшая выдача данных производится уже не из google таблицы, а из кэша.
ВАЖНО: Кэширование работает только на выдачу данных, не на внесение
Поэтому имеет смысл включить кэш google таблиц, тогда отправка поста первому пользователю сделает запрос в google таблицы, а дальнейшие отправки будут брать уже сохраненное значение из кэша, чтобы не делать лишние запросы в таблицы
Здесь тоже есть одно НО. Кеширование лучше использовать, если таблица используется только для записи. Если же данные нужно получать мгновенно, к примеру, проверять доступ в моменте, то такой способ не подойдёт.
А если нужно сделать рассылку на 10 000 пользователей разом?
Давайте посчитаем. Бот отправляет до 30 сообщений в секунду. Возьмем минимальное значение 10 сообщений в секунду, из-за разной очереди
В посте рассылается интегрированная переменная, которая должна брать значение из ячейки в таблице. Пост будет рассылаться 10 000 / 10 = 1 000 секунд
Если не включать функцию кэша, то при каждой отправке PuzzleBot будет обращаться к таблице чтобы получить значение. Итого 10 000 пользователей = 10 000 запросов. Такой метод вызовет ошибку почти сразу
Если включить функцию кеша и задать значение 1 секунда, то бот будет в течение этого времени брать информацию не из таблицы, а из кэша. И за 1 секунду он успеет обработать примерно 10 запросов. Таким образом, при кэше в 1 секунду боту понадобится 1000 запросов
Но вы уже гарантировано вписываетесь в лимит 60 запросов в минуту. И все ваши данные точно будут отработаны верно
Если вы напишете кэш 100 секунд, то Puzzlebot будет обращаться к таблице за получением новых данных раз в 100 секунд, обрабатывая около 1000 запросов из кэша, а не таблицы. Поэтому для отправки 10 000 запросов он обратится к таблице 10 раз
Таким образом, чем больше кэш, тем меньше запросов в таблицу, которые могут вам понадобиться в других командах
С базами данных можно и нужно работать. Эти несколько несложных действий помогут сократить время и максимально автоматизировать работу вашего бота.
Если у вас остались вопросы, напишите их в комментариях






