{"id":14285,"url":"\/distributions\/14285\/click?bit=1&hash=346f3dd5dee2d88930b559bfe049bf63f032c3f6597a81b363a99361cc92d37d","title":"\u0421\u0442\u0438\u043f\u0435\u043d\u0434\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f","buttonText":"","imageUuid":""}

Что такое нагрузка и ограничение API-вызовов: как понять функционал интеграции с Битрикс24?

Сегодня мы расскажем, что такое нагрузка, что такое REST API методы, почему их нужно обсуждать на встрече и почему важно проводить тестирование функционала перед покупкой сервисов.

Как вы знаете, у нас есть приложение "База бизнес-процессов" (ББП), в состав которого входит 52 разных активити (востребованные действия для бизнес-процессов) в Битрикс24. По сути, мы создали движок, куда подкладываем наши фишки и отдаем их рынку и клиентам для легкой установки и настройки без доработки.

Например, в него входит активити "Автоматические сообщения из Битрикс24 в Telegram", с помощью которого можно отправлять важные уведомления клиентам или сотрудникам из Битрикс24 в мессенджер Telegram. Расскажем на примере этого приложения, что такое нагрузка и почему она важна.

1. Что такое нагрузка

С помощью активити "Автоматические сообщения из Битрикс24 в Telegram" можно отправлять уведомления в Telegram при срабатывании определенных условий. Например, при смене стадии сделки в Битрикс24 клиенту летит уведомление в чат или уведомление руководителю, что задача у сотрудника просрочена.

Еще вариант использования: при пропущенном звонке в Битрикс24 на менеджера ставится задача о необходимости проработать пропущенный звонок. С помощью активити менеджеру прилетит уведомление в личный чат Телеграм со ссылкой на лид, по которому был пропущенный звонок.

Этот функционал мы распространяем в рамках установки приложения из Маркета Битрикс24.

ББП была опубликована в 2019 году, но с тех пор она устарела по ряду причин, например:

1.1 Клиенты, которые особо активно использовали какое-либо активити, (например, тот же Телеграм), запускали огромное количество заданий, то есть, очень много API-вызовов и бизнес-процесс зависал, приложение не справлялось с нагрузкой и падало. Причем сбои могли быть не только у этих клиентов, а абсолютно у всех пользователей приложения. То есть, обнаружились проблемы с нагрузкой, которую приложение не выдерживало.

1.2 Несмотря на то, что в ББП входит огромное количество активити, мы постоянно получаем запросы на добавление новых активити. Реализовать это технически очень сложно: когда мы добавляем новое активити, сразу же возникает вопрос, как залить обновление с новыми активити клиентам на старых версиях приложения?

1.3 Мы перевели приложение на систему очередей, но это не до конца решило проблему с нагрузкой. Дело в том, что клиенты относятся к активити как к чему-то примитивному, очень простому. Но если активити задействует очень много API-вызовов, это уже полноценный веб-сервис. Для веб-сервиса можно и нужно использовать понятие "производительность", причем ее невозможно обеспечить только серверными ресурсами, необходимо создание множества систем анализа и мониторинга заданий в очереди, иначе приложение не будет справляться.

2. Как мы решили проблему большой нагрузки на ББП

Именно поэтому мы стали переводить клиентов, которые используют ББП, на Пинкит. В Пинкит нет ограничения по количеству API-вызовов. Происходит это по следующему регламенту.

2.1 Если мы видим, что клиент начал использовать ББП в промышленных масштабах (свыше 1000 API-вызовов в месяц), мы не дожидаемся падения сервера ББП, а связываемся с клиентом и говорим о необходимости перехода на платформу Пинкит, так как ББП ему уже не подходит.

2.2 В отличие от других сервисов, мы не монетизируемся через ограничение API-вызовов, а решаем эту проблему через Пинкит. Масштабирование всегда требует денег на развитие, поддержку, доработки типа прикручивания обработчиков, чтобы выдержать растущую нагрузку.

Нам бывает сложно объяснить клиенту, что если он засылает в Телеграм миллион сообщений в месяц (которые он сам не в состоянии обработать), то это большая нагрузка и необходимы большие производственные мощности. Пытаемся достучаться до клиента и пояснить, как правильно распределить необходимую ему нагрузку, чтобы не пострадал ни он, ни другие пользователи приложения.

2.3 Благодаря переводу клиентов на Пинкит, мы поддерживаем всю библиотеку REST API Битрикс24 и теперь можем дотянуться до нужных полей внутри вашего портала Битрикс24 без особой сложности и сформировать нужную вам бизнес-логику, а вы получаете прозрачно работающую интеграцию по обмену данными внутри вашего Битрикс24.

Итог

Мы понимаем, что каждый клиент хочет, чтобы нужный ему функционал работал слаженно и бесперебойно. Но не все понимают, что сервис может не справляться по причине чрезмерной нагрузки. Платформа Пинкит была создана именно для того, чтобы высоконагруженные процессы с большим количеством API-вызовов не стали проблемой, и ваши интеграции работали, как и всегда.

Если вам нужна автоматизация бизнес-процессов с высокой нагрузкой, Пинкит для вас неплохой выбор — его уже используют тысячи наших клиентов. Покупайте платформу со скидкой до конца марта: мы делим цену на 8. При этом никаких ограничений по количеству API-вызовов.

Алексей Окара, основатель Пинол и продакт-менеджер Пинкит
0
4 комментария
Виталий Шорин

К слову у конкурентов повышенная нагрузка на API вызовы стоит денег и Много очень денег
А тут без денех

Ответить
Развернуть ветку
Пинол

У всех разная модель монетизации, у нас фокус на решение задач по автоматизации бизнеса с помощью CRM( Битрикс24 или amoCRM)

Ответить
Развернуть ветку
SKY

У меня тоже была необходимость запрашивать данные каждые 5 секунд. Нужный мне API ресурс предоставлял 100к запросов в день (если 100к запросов в день, то каждые 5 секунд это 17280 запросов в день). Для одного запроса этого хватает, но если их несколько, то уже не более 5 запросов каждые 5 секунд.
Наткнулся на бота который получает информацию в реальном времени от нужного мне API ресурса, при изменении данных, он отправляет информацию. Не знаю как устроена его схема опросов, возможно сам ресурс отправляет ему данные, а он их просто передает, тогда и кучи запросов не нужны (хотя возможно боту просто предоставили безлимитный доступ к API)
Единственный вариант увеличения лимитов это заставить ресурс API отправлять данные, тогда и запрашивать их не придется (или создавать API метки когда появляются изменения в данных, чтобы сделать всего один запрос для получения этих данных)

Ответить
Развернуть ветку
ALEXEY OKARA
Ответить
Развернуть ветку
1 комментарий
Раскрывать всегда